【发布时间】:2019-07-28 06:25:07
【问题描述】:
我有一个图,其中包含两行一列的两个子图,如下所示:
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 轴有更多的空白,并且可以显示标签而不会将其切断。我该怎么做?
【问题讨论】:
-
您是否尝试先设置图形大小,然后设置轴大小?
-
@BrenBarn 是的,我尝试了两种命令的顺序,但结果始终相同。
-
ax.axis更改轴的限制,而不是轴的大小。 -
@tcaswell 是的,这里显然是错误的命令。如何设置每个子图的大小并在加宽图形时保持固定?
-
您需要调整子图中的
padding参数...。我只是在查找确切的位置。
标签: python matplotlib