我试图调整一个suptitle
以上的多面板数字,我有麻烦弄清楚如何调整figsize
和随后的位置字幕。
问题是调用plt.suptitle("my title", y=...)
来调整字幕的位置也会调整图形的尺寸。
suptitle(..., y=1.1)
实际上把标题放在哪里呢?据我所知,suptitle的y
参数的文档指向matplotlib.text.text,但我不知道当你有多个子情节时,图形坐标是什么意思。
1.将y
指定为suptitle
时,对图形大小有何影响?
1.如何手动调整图形大小和间距(subplots_adjust
?),以便为每个面板添加一个图形标题,为整个图形添加一个副标题,同时保持图形中每个轴的大小?
举个例子:
data = np.random.random(size=100)
f, a = plt.subplots(2, 2, figsize=(10, 5))
a[0,0].plot(data)
a[0,0].set_title("this is a really long title\n"*2)
a[0,1].plot(data)
a[1,1].plot(data)
plt.suptitle("a big long suptitle that runs into the title\n"*2, y=1.05);
很明显,我可以在每次绘制图形时调整y,但是我需要一个通常不需要人工干预的解决方案。但两者都不能可靠地处理任何复杂的图形。
4条答案
按热度按时间j0pj023g1#
1.地物坐标的含义是什么?
图的坐标从0到1,其中(0,0)是左下角,(1,1)是右上角,因此坐标
y=1.05
稍微在图的外部。2.指定y为字幕时,对图形大小有何影响?
指定
y
作为字幕对插图大小没有任何影响。3a.如何手动调整图的大小和间距,以便为每个面板添加图标题,并为整个图添加副标题?
首先,不要添加额外的换行符。即如果你想要2行,不要使用3个换行符(
\n
)。然后,你可以根据需要调整子情节参数,为标题留出空间。例如,fig.subplots_adjust(top=0.8)
,并使用y <= 1
将标题置于图内。3b....同时保持图中每个斧头的大小?
只有通过更改图形的整体大小,才能保持轴的大小并为标题留出足够的空间。
我们定义一个函数
make_space_above
,它将坐标轴数组作为输入,并输入新的上边距(单位为英寸)。例如,您得出的结论是,您需要在顶部留出1英寸的边距来存放标题:(left:不调用
make_space_above
;右:调用make_space_above(axes, topmargin=1)
)bxgwgixi2#
简短回答
对于来自Google的用于调整标题在散布矩阵上的位置的命令,只需将
y
参数设置为略小于1的值:plt.suptitle('My Title', y=0.92)
1sbrub3j3#
...或使用约束布局(_L):
zi8p0yeb4#
这是一个有点笨拙的解决方案,但如果你的图只有1列,也许可以考虑在第一个图的标题中添加主标题,如下所示: