首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在我的情节周围加上更多的空格?

如何在我的情节周围加上更多的空格?
EN

Stack Overflow用户
提问于 2013-01-13 18:57:48
回答 1查看 12.4K关注 0票数 5

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

代码语言:javascript
复制
fig, (ax1, ax2) = subplots(
    nrows=2,
    ncols=1,
)

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

代码语言:javascript
复制
ax1.axis([0, 8, 0, 8])
ax2.axis([0, 8, 0, 8])

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

代码语言:javascript
复制
fig.set_size_inches(8, 16)

这些设置会产生格式良好的饼图。但是,当我将图形保存到PDF文件中时,饼的楔形之一的标签会在图形的右边被剪掉。该图形在保存的文件中比在预览窗口中更窄。这就是为什么我希望沿着x轴扩大图形,但保留子图的轴。如果我试着扩大这个数字的话:

代码语言:javascript
复制
fig.set_size_inches(12, 16)

这个数字现在越来越宽,但不幸的是,这两个饼图也是如此。据我所知,axis()调用应该保留子图的维度,但它们不应该。在阅读和试用了很多关于自动示波器、xlim、ylim等的内容之后,我更加困惑,什么也不起作用。

我只是想通过保留子图的尺寸来扩大图形,这样x轴上就会有更多的空格,标签就可以在不切断的情况下显示出来。我该怎么做?

EN

回答 1

Stack Overflow用户

发布于 2013-01-13 19:28:58

我建议使用fig.tight_layout。您大约有两条路径,要么对pad进行调整

代码语言:javascript
复制
fig.tight_layout(pad=2)

当您将所有的边缘从图形的边缘移动,或者

代码语言:javascript
复制
fig.tight_layout(rect=[0,0,.8,1]) 

它将调整子图被压缩到的盒子的大小(以数字的分数为单位)。这只适用于更新版本(1.2或更高版本)。

您也可以手工创建子图(这是非常烦人的,但给您完全的控制)或使用网格规范。布局子图似乎是一个问题,matplotlib有很多方法可以解决。

令人讨厌的方法是

代码语言:javascript
复制
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个参数的调整,使你的数字看起来很好。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14306986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档