Python 增加matplolib中标题和绘图之间的距离?

Python 增加matplolib中标题和绘图之间的距离?,python,matplotlib,plot,title,margins,Python,Matplotlib,Plot,Title,Margins,我在matplotlib中有一个简单的绘图,我想增加标题和绘图之间的距离(不使用suptitle,因为它不适用于我在服务器上使用的版本)。如何做到这一点?似乎没有一个干净的方法来直接设置它(但可能值得一个功能请求来添加它),但是标题只是一个文本艺术家,因此您可以进入并更改它 #ax = plt.gca() ttl = ax.title ttl.set_position([.5, 1.05]) #plt.draw() 我们应该做到这一点。根据您的喜好调整1.05。使用rcParams: from

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

似乎没有一个干净的方法来直接设置它(但可能值得一个功能请求来添加它),但是标题只是一个
文本
艺术家,因此您可以进入并更改它

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

我们应该做到这一点。根据您的喜好调整
1.05

使用
rcParams

from matplotlib import rcParams
rcParams['axes.titlepad'] = 20 
其中
20
是绘图和标题之间的填充


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

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

调整
pad
,直到您满意轴标题位置。与使用
rcParams
相比,此方法的优点在于它仅更改此单轴标题。

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

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

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

在显示绘图之前,即在
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方法相比,该方法的优点是标题永远不会超出图形窗口;因为如果标题足够大,那么通过
suptitle
中的参数
y
将其向上移动可能会将标题移到图形之外。(正如我所遇到的;)

难道不可能在标题后面简单地放一些空行吗?您甚至可以使用
文本的
行距
kwarg
。我发现在字符串离开我需要的空间后添加了\n链接中的文档仅列出“axes.titlepad”。可能是打字错误?@keisuke说得对。谢谢你发现这个。我已经更新了答案。在Python3中,“KeyError:”axes.titlepad不是有效的rc参数。@GennaroTedesco您使用的是matplotlib的最新版本吗?谢谢!您知道如何向ax标签添加填充吗?您可以执行
ax.xaxis.labelpad=10.0
以及
yaxis
zaxis
为什么它没有标记为答案?谢谢,顺便说一句@TedoVrbanec对于轴标签,您可以执行
ax.set\u xlabel('label',labelpad=20)
。调整
labelpad
参数,直到您满意为止。这应该是可以接受的答案。很好!在matplotlib
v2.0.0
中,它也适用于
plt.title()
。我有一个旧版本的matplotlib。。。所以我无法使用“axes.titlepad”解决方案。所以你的工作很好!非常感谢。