在matplotlib中增加标题和图表之间的距离?

时间:2013-05-07 12:58:02

标签: python matplotlib plot title margins

我在matplotlib中有一个简单的绘图,我想增加标题和绘图之间的距离(不使用suptitle,因为它不适用于我在服务器上使用的版本)。怎么做?

5 个答案:

答案 0 :(得分:33)

似乎没有一种干净的方式直接设置它(但可能值得添加一个功能请求),但标题只是一个text艺术家,所以你可以进入和更改它

#ax = plt.gca()
ttl = ax.title
ttl.set_position([.5, 1.05])
#plt.draw()

应该做的伎俩。根据自己的喜好调整1.05

答案 1 :(得分:16)

使用rcParams

from matplotlib import rcParams
rcParams['axes.titlepad'] = 20 

其中20是情节和标题之间的填充。

来自https://matplotlib.org/users/customizing.html

答案 2 :(得分:16)

使用matplotlib 2.2+,您可以使用关键字参数pad

ax.set_title('Title', pad=20)

调整pad,直到您对轴标题位置感到满意为止。与使用rcParams相比,此方法的优点是它只会更改此一个轴标题。

答案 3 :(得分:5)

您只需将y参数传递到plt.suptitle方法中即可:

plt.suptitle('Amazing Stats', size=16, y=1.12);      

答案 4 :(得分:2)

另一种可能性是相对于整个图形窗口减小图形的相对大小。这样,标题和剧情之间的距离就会增加。

在显示图之前,即在plt.show()之前,编写以下命令:

#The standard value of 'top' is 0.9, tune a lower value, e.g., 0.8
plt.subplots_adjust(top=0.8) 

与@CanCeylan方法相比,此方法的优点是标题永远不会超出图形窗口;因为如果标题足够大,则通过y中的参数suptitle向上移动标题可能会将标题移出图形。 (因为发生在我身上;))