Python/Matplotlib - 调整绘图边缘和x轴之间的间距

18

如何调整x轴和绘图窗口边缘之间的空间?我的x轴标签是纵向定位的,它们超出了Matplotlib绘制的窗口边缘。

以下是示例代码:

import matplotlib.pyplot as plt
x=[1,2,3,4,5]
y=[1,2,3,4,5]
plt.plot(x,y)
plt.xticks(rotation='vertical')
plt.show()

如果您有一个轴对象,例如 ax,那么您可以通过以下方式简单地访问图形对象:fig = ax.figure - Paul
嗨,保罗。我已经添加了一些示例代码。 - thenickname
1
这是一个很好的示例,展示了如何获取垂直的xtick标签,谢谢。 :) - Jean-Paul Calderone
2个回答

18

正如Paul所说,你正在使用图表。你可以使用gcf()获取当前图表的引用,然后根据常见问题解答设置间距。我已经在你的代码中添加了两行:

import matplotlib.pyplot as plt
x=[1,2,3,4,5]
y=[1,2,3,4,5]
plt.plot(x,y)
plt.xticks(rotation='vertical')

fig = plt.gcf()
fig.subplots_adjust(bottom=0.2)

plt.show()

1
只需应用 fig.tight_layout() 即可解决此问题,无需进行任何手动调整。 - Dzamo Norton
1
实际上,当这个问题被提出时,tight_layout()函数还不存在。而且显然,八年后,tight_layout仍然被标记为“实验性”的(但是,我预计它在大多数典型的使用情况下都能很好地工作,所以你的评论对这个答案是一个有价值的补充)。 - Daan

3

我没有使用数字;这样做会极大地复杂化我的程序。 - thenickname
@thenickname,你在使用图表。它们是自动生成的,但在全局范围内不可见。你可以通过各种方式访问这些对象。如果你发布一些代码,你就可以得到更具体的答案,告诉你如何尽可能清晰简洁地调整这些图表。 - Paul
我已经添加了一些示例代码。在我的程序中,我通过各种循环向绘图添加各种数据集。添加子图会使事情变得复杂。 - thenickname
由于网站经常变动,我们不知道链接指向的位置,所以并不是很有用。 - loco.loop

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接