3 回答
TA贡献1802条经验 获得超4个赞
如果您更喜欢非面向对象的方法,请在两次avail_plot调用之前将plt.xticks(rotation = 70)移到右侧,例如
plt.xticks(rotation=70)
avail_plot(axs[0], dates, s1, 'testing', 'green')
avail_plot(axs[1], dates, s1, 'testing2', 'red')
这会在设置标签之前设置rotation属性。由于这里有两个轴,因此在制作完两个图之后,plt.xticks会变得混乱。而此时plt.xticks不会做任何事情的地步,plt.gca()并没有给你作用于当前坐标要修改的轴,所以plt.xticks,是行不通的。
对于不使用plt.xticks的面向对象方法,您可以使用
plt.setp( axs[1].xaxis.get_majorticklabels(), rotation=70 )
在两次avail_plot调用之后。这样就可以在正确的轴上设置旋转。
TA贡献1817条经验 获得超14个赞
解决方案适用于matplotlib 2.1+
存在tick_params可以改变刻度属性的轴方法。它也作为轴方法存在set_tick_params
ax.tick_params(axis='x', rotation=45)
要么
ax.xaxis.set_tick_params(rotation=45)
作为旁注,当前的解决方案通过使用命令将状态接口(使用pyplot)与面向对象的接口混合plt.xticks(rotation=70)。由于问题中的代码使用面向对象的方法,因此最好始终坚持使用该方法。该解决方案确实提供了一个很好的显式解决方plt.setp( axs[1].xaxis.get_majorticklabels(), rotation=70 )
添加回答
举报