我有一个matplotlib图,实际上是两个不同高度的子图,看起来像一个单独的脱节图。
我使用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轴标签,但我不知道如何做到这一点。
答案 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')