【问题标题】:How to put more whitespace around my plots?如何在我的地块周围放置更多空白?
【发布时间】: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


【解决方案1】:

我建议使用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 个参数以使您的数字看起来不错。

【讨论】:

  • 我实际上已经在使用tight_layout(),但到目前为止我还没有想到调整它的参数。通过调整pad,图中的所有内容都变小了。这样,标签在某些时候完全适合图形,但子图变得非常(=太)小。当我尝试像第二个示例中那样调整 rect 时,我得到 TypeError: tight_layout() got an unexpected keyword argument 'rect'
  • @PeterStahl 你用的是什么版本的matplotlib?
  • 我在 OSX 10.8.2 上使用 1.1.1 版。
  • matplotlib.org/api/… 给我一点时间来挖掘一下,看看他们何时添加了rect 关键字......
  • @PeterStahl 是的,该关键字是在 1.1.1 之后的某个时间添加的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-19
  • 2016-02-25
  • 2017-02-07
  • 1970-01-01
  • 2013-08-25
  • 1970-01-01
  • 2013-04-29
相关资源
最近更新 更多