gpt4 book ai didi

python - 如何在我的地 block 周围放置更多的空白?

转载 作者:太空宇宙 更新时间:2023-11-03 15:21:22 29 4
gpt4 key购买 nike

我有一个图形,其中包含两行一列中的两个子图,如下所示:

fig, (ax1, ax2) = subplots(
nrows=2,
ncols=1,
)

这两个子图是饼图,因此我希望它们的轴是正方形的。浏览 API 后,以下应该是调整每个子图的轴的正确方法:

ax1.axis([0, 8, 0, 8])
ax2.axis([0, 8, 0, 8])

然后我调整整个图形的大小。由于每个子图的宽度为 8 英寸,因此我将图形的宽度也设置为 8 英寸,图形的高度也设置为 2*8=16 英寸:

fig.set_size_inches(8, 16)

这些设置会生成格式精美的饼图。但是,当我将图形保存为 PDF 文件时,饼图的一个楔形标签在图形的右边缘被切断。保存文件中的图形比预览窗口中的图形更窄。这就是为什么我想沿 x 轴加宽图形,但要保留子图的轴。如果我只是尝试通过以下方式扩大数字:

fig.set_size_inches(12, 16)

现在图形变宽了,但不幸的是,两个饼图也变宽了。根据我的理解,axis() 调用应该保留子图的维度,但它们没有。在阅读并尝试了很多有关 autoscale、xlim、ylim 等的内容后,我更加困惑,没有任何效果。

我只是想通过保留子图的尺寸来加宽图形,以便沿 x 轴有更多的空白,并且可以显示标签而不会将它们切断。我该怎么做?

最佳答案

我建议使用 fig.tight_layout .您大致有两条路径,要么调整 pad

fig.tight_layout(pad=2)

同时将所有边缘从图形边缘移入或

fig.tight_layout(rect=[0,0,.8,1]) 

这将调整子图被挤入的框的大小(以图形的分数为单位)。这仅适用于较新的(1.2 或更高版本)版本。

您还可以手动创建子图(这非常烦人,但可以完全控制)或使用 gridspec .布置子图似乎是个问题 matplotlib 有大量的方法可以解决。

烦人的方法是

fig = plt.figure()


top_offset = .07
left_offset = .15
right_offset = .2
bottom_offset = .13
hgap = .1
ax_width = 1-left_offset - right_offset
ax_height = (1-top_offset - bottom_offset - hgap)/2

ax1 = fig.add_axes([left_offset, bottom_offset + ax_height + hgap, ax_width, ax_height])
ax2 = fig.add_axes([left_offset, bottom_offset, ax_width, ax_height])

通过调整 5 个参数,使您的图形看起来更漂亮。

关于python - 如何在我的地 block 周围放置更多的空白?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14306986/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com