我想创建一个多面板图:
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(2,1,1)
ax1.scatter(1,1)
ax2 = fig.add_subplot(2,1,2,sharex=ax1)
ax2.scatter(1,1)
然后为标签创建一个单独的轴对象...
dummy = fig.add_subplot(1,1,1)
dummy.set_visible(False)
dummy.yaxis.set_label_text('y label')
dummy.yaxis.label.set_visible(True)
但是不起作用。我想知道为什么?
答案 0 :(得分:5)
昨天遇到类似的问题时,我只是用text()
函数来实现结果。使用您的示例,这将读取类似
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(2,1,1)
ax1.scatter(1,1)
ax2 = fig.add_subplot(2,1,2,sharex=ax1)
ax2.scatter(1,1)
ax = fig.add_axes( [0., 0., 1, 1] )
ax.set_axis_off()
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
ax.text(
.05, 0.5, "Y Label", rotation='vertical',
horizontalalignment='center', verticalalignment='center'
)
您可能还想使用plt.subplots_adjust()
为标签腾出空间。