我知道我可以使用update
来调整matplotlib图中GridSpec
示例的参数,允许在一个图中安排多个gridspec。
gs1 = gridspec.GridSpec(3, 3)
gs1.update(left=0.05, right=0.48, wspace=0.05)
ax1 = plt.subplot(gs1[:-1, :])
ax2 = plt.subplot(gs1[-1, :-1])
ax3 = plt.subplot(gs1[-1, -1])
gs2 = gridspec.GridSpec(3, 3)
gs2.update(left=0.55, right=0.98, hspace=0.05)
ax4 = plt.subplot(gs2[:, :-1])
ax5 = plt.subplot(gs2[:-1, -1])
ax6 = plt.subplot(gs2[-1, -1])
但是我怎样才能同时给予gs1
和gs2
它们自己的公共标题呢?使用suptitle
我一次只能得到整个图的公共标题。
2条答案
按热度按时间igetnqfo1#
我能想到四种方法,都相当丑陋。我不知道是否有任何自动设置这种东西的方法。
四种丑陋的方式是:
1)将标题设置为每个组中的“顶部”轴对象,并使用
ax.set_title()
(在您的示例中为ax1
和ax4
)。它在左侧组中工作得很好,但对于右侧组则很糟糕...2)使用
fig.suptitle
设置一个标题,但在标题内留出大量空格,并使用horizontalalignment='center'
。3)为每个标题手动设置一个文本对象...(不在下面的示例中,但只需查看matplotlib.text)
4)创建鬼斧,隐藏他们的一切,只是用它们来设置他们的标题...
下面是一些示例代码
bvn4nwqk2#
太晚了,但刚刚发现这个线程时,搜索完全相同的东西,所以只是离开这个人绊倒它。
我认为@pathoren的Alternative 4)是可行的方法,但您可以重用现有的gridspec来创建您的ghost轴,以便它与现有的ghost轴完全匹配:
生成的布局: