共享Y轴标签

时间:2015-07-28 10:49:22

标签: python matplotlib

我有一个matplotlib图,实际上是两个不同高度的子图,看起来像一个单独的脱节图。

enter image description here

我使用Gridspec完成了这个:

outer = gridspec.GridSpec(2, 1, height_ratios=[1,3])
gs1 = gridspec.GridSpecFromSubplotSpec(1, 1, subplot_spec = outer[0])
ax1 = plt.subplot(gs1[0])
ax1.plot(no_rot,max_sd,'k*')
plt.ylabel('Y Axis Label')

gs2 = gridspec.GridSpecFromSubplotSpec(1, 1, subplot_spec = outer[1])
ax2 = plt.subplot(gs2[0])
ax2.plot(no_rot,max_sd,'k*')
plt.xlabel('X Axis Label')
plt.ylabel('Y Axis Label')

我现在想要一个共享的,集中的Y轴标签,但我不知道如何做到这一点。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用以下标签存储对标签的引用:

yaxis_label = plt.ylabel('My Y-axis')

然后以相对单位改变其位置,例如

yaxis_label.set_position((-0.05,0.5))

您可能需要在此处调整相对(x,y)以正确定位它,因为您有两个子图。

或者,将子图显式放在图中,并相对于图坐标放置y轴的文本标签:

ax.text(0.05, 0.5, "My y-axis", transform=f.transFigure, rotation='vertical',
        verticalalignment='center')