如何在Matplotlib中扩展图形底部的边距?

如何在Matplotlib中扩展图形底部的边距?,matplotlib,margin,Matplotlib,Margin,下面的屏幕截图显示了我的x轴 我添加了一些标签,并将它们旋转90度,以便更好地阅读它们。但是,pyplot截断了底部,因此我无法完全读取标签。 如何扩展底部边距以查看完整的标签?两种追溯方式: fig, ax = plt.subplots() # ... fig.tight_layout() 或 下面是一个子批次调整示例: (但我更喜欢紧凑的布局)子地块调整对我不起作用,因为整个图形只会在标签仍然超出边界的情况下调整大小 我发现的一个解决方法是在y轴的最大值或最小值上始终保持一定的余量: x

下面的屏幕截图显示了我的x轴

我添加了一些标签,并将它们旋转90度,以便更好地阅读它们。但是,pyplot截断了底部,因此我无法完全读取标签。 如何扩展底部边距以查看完整的标签?

两种追溯方式:

fig, ax = plt.subplots()
# ...
fig.tight_layout()

下面是一个
子批次调整
示例:


(但我更喜欢紧凑的布局)

子地块调整对我不起作用,因为整个图形只会在标签仍然超出边界的情况下调整大小

我发现的一个解决方法是在y轴的最大值或最小值上始终保持一定的余量:

x1,x2,y1,y2 = plt.axis()
plt.axis((x1,x2,y1 - 100 ,y2 + 100))

对我来说,一个快速的单行解决方案是直接使用pyplot的auto,该解决方案在Matplotlib v1.1以后的版本中提供:

plt.tight_layout()
这可以在显示绘图之前立即调用(
plt.show()
),但在对轴进行操作(例如,标签旋转等)之后调用

这种方便的方法避免了操纵子地块的单个图形

其中,plt是标准pyplot,来自:
将matplotlib.pyplot导入为plt

fig.savefig('name.png', bbox_inches='tight')
对我来说效果最好,因为它不会减少绘图的大小

fig.tight_layout()

您还可以告诉pass
tight\u layout=True
子批次
,这是相同的效果。有没有一种方法可以不使用
tight\u layout
子批次
?也就是说,如果只是创建一个图形并通过
plt.plot(…)
添加一个绘图。我问这个问题的原因是因为我试图为一部电影创建多个情节,如果使用
子情节和/或
紧凑布局,则标题和轴标签会摆动。任何帮助都将不胜感激。@Wolpertinger:
fig=plt.figure();图添加_轴(…)
子图\u adjust
对我起了部分作用,在图例被切割的图形顶部添加了一些空间:
top=0.75
没有足够的效果,
top=1.5
,奇怪的是,似乎没有效果<代码>tigh_布局
在这种特殊情况下似乎没有任何效果。回答得好。值得注意的是,“但在你的操纵之后”的评论是至关重要的。否则,你的头衔可能会像我一样被砍掉。这是唯一对我有效的解决办法。
fig.tight_layout()