在由几个轴组成的图上重叠刻度标签 - tight_layout无效

时间:2016-10-06 14:48:28

标签: python matplotlib

在由代码构建的图中

left, width = 0.1, 0.8
rect1 = [left, 0.7, width, 0.2]
rect2 = [left, 0.3, width, 0.4]
rect3 = [left, 0.1, width, 0.2]
fig = plt.figure(facecolor='white')
ax1 = fig.add_axes(rect1)
ax2 = fig.add_axes(rect2,sharex=ax1)
ax3 = fig.add_axes(rect3,sharex=ax1)

外轴(x1,x2)的max-y-tick-标签与内部图(ax2)的最大刻度标签重叠,后者由下图中的红色日食标记:

enter image description here

如果

,如何防止这种情况发生
plt.tight_layout() 

不起作用?

1 个答案:

答案 0 :(得分:0)

通过手动设置y标签,使用

 ax1.set_yticks([30, 70])

可以防止重叠。

然而,这个解决方案并不完全令人满意,因为它是硬编码的而不是非常通用的。但它适用于这个特定的问题。

另一种解决方案是将中轴的y标签移动到右侧,如

中所示

Python Matplotlib Y-Axis ticks on Right Side of Plot