需要在子图之间添加 X 轴标签的间距,或许可以去掉轴刻度标签
想在绘制的图表之间增加一些垂直空间,以便能显示X轴的标签:
每个图表都需要有空间来显示日期,目前只有最后两个图表能显示,因为它们重叠在一起了。
我还想知道,能不能把星期四和星期五上方图表的X轴刻度标签去掉,也就是说,只有底部的X轴显示。Y轴也是这样,只有左边的图表显示刻度。
*很遗憾,我无法上传图片来展示这个问题,因为我的积分不够。
代码片段:
import mathlib.pyplot as pyplot
fig = pyplot.figure()
ax1 = fig.add_subplot(4,2,1)
ax1.set_yscale('log')
ax2 = fig.add_subplot(4,2,2, sharex=ax1, sharey=ax1)
ax3 = fig.add_subplot(4,2,3, sharex=ax2, sharey=ax2)
ax4 = fig.add_subplot(4,2,4, sharex=ax3, sharey=ax3)
ax5 = fig.add_subplot(4,2,5, sharex=ax4, sharey=ax4)
ax6 = fig.add_subplot(4,2,6, sharex=ax5, sharey=ax5)
ax7 = fig.add_subplot(4,2,7, sharex=ax6, sharey=ax6)
ax1.plot(no_dict["Saturday"],'k.-',label='Saturday')
ax1.set_xlabel('Saturday')
ax1.axis([0,24,0,10000])
pyplot.suptitle('Title')
pyplot.xlabel('Hour in 24 Hour Format')
ax2.plot(no_dict["Sunday"],'b.-',label='Sunday')
ax2.set_xlabel('Sunday')
...
2 个回答
1
如果你想只调整某个子图周围的间距,而不是所有的子图,可以通过调整那个子图的坐标位置来实现:
bbox=plt.gca().get_position()
offset=-.03
plt.gca().set_position([bbox.x0, bbox.y0 + offset, bbox.x1-bbox.x0, bbox.y1 - bbox.y0])
如果 offset < 0
,那么这个子图会向下移动。如果 offset > 0
,那么这个子图会向上移动。
需要注意的是,如果偏移量太大,导致这个子图的新位置和其他子图重叠了,那么这个子图就会消失。
111
使用 subplots_adjust。在你的情况下,这样做看起来不错:
fig.subplots_adjust(hspace=.5)
要去掉刻度标签,可以这样做:
ax1.set_xticklabels([])
对于 yticklabels
也是类似的。不过,你不能和那些有刻度标签的图共享 x 轴。