增加matplotlib中标题和绘图之间的距离? [复制]
Posted
技术标签:
【中文标题】增加matplotlib中标题和绘图之间的距离? [复制]【英文标题】:Increase distance between title and plot in matplolib? [duplicate] 【发布时间】:2013-05-01 10:38:45 【问题描述】:我在 matplotlib 中有一个简单的绘图,我想增加标题和绘图之间的距离(不使用 suptitle
,因为它不适用于我在服务器上使用的版本)。该怎么做?
【问题讨论】:
不能简单地在标题后面放一些空行吗?你甚至可以使用text
的linespacing
kwarg。
我发现只是在字符串离开我需要的空间之后添加了 \n
【参考方案1】:
使用matplotlib 2.2+
,您可以使用关键字参数pad
:
ax.set_title('Title', pad=20)
调整pad
,直到您对轴标题位置感到满意为止。这种方法比使用rcParams
的优点是它只改变了这一轴标题。
【讨论】:
谢谢!你知道如何为 ax 标签添加内边距吗? 您可以使用ax.xaxis.labelpad=10.0
以及yaxis
和zaxis
为什么它没有被标记为答案?谢谢,顺便说一句!
@TedoVrbanec 对于轴标签,您可以使用ax.set_xlabel('label', labelpad=20)
。调整labelpad
参数,直到满意为止。
这应该是公认的答案。【参考方案2】:
似乎没有一种直接设置它的干净方法(但可能值得一个功能请求来添加它),但是标题只是text
艺术家,所以你可以进入并更改它。
#ax = plt.gca()
ttl = ax.title
ttl.set_position([.5, 1.05])
#plt.draw()
应该可以解决问题。根据您的喜好调整1.05
。
【讨论】:
【参考方案3】:您可以将y
参数传递给plt.suptitle
方法:
plt.suptitle('Amazing Stats', size=16, y=1.12);
【讨论】:
好!在 matplotlibv2.0.0
它也适用于 plt.title()
。【参考方案4】:
使用rcParams
:
from matplotlib import rcParams
rcParams['axes.titlepad'] = 20
其中20
是情节和标题之间的填充。
来自https://matplotlib.org/users/customizing.html
【讨论】:
链接中的文档仅列出了“axes.titlepad”。可能是错字? @keisuke 正确。感谢您发现这一点。我已经更新了答案。 在 Python3 "KeyError: 'axes.titlepad is not a valid rc parameter". @GennaroTedesco 你在使用最新版本的 matplotlib 吗?【参考方案5】:另一种可能性是减小绘图相对于整个图形窗口的相对大小。这样,标题和情节之间的距离就会增加。
在显示情节之前,即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
向上移动它可能会将标题移动到图形之外。 (因为它发生在我身上;))
【讨论】:
我有一个旧版本的 matplotlib ...所以我无法使用“axes.titlepad”解决方案。所以你的效果很好!谢谢一百万。以上是关于增加matplotlib中标题和绘图之间的距离? [复制]的主要内容,如果未能解决你的问题,请参考以下文章