增加matplotlib中标题和绘图之间的距离? [复制]

Posted

技术标签:

【中文标题】增加matplotlib中标题和绘图之间的距离? [复制]【英文标题】:Increase distance between title and plot in matplolib? [duplicate] 【发布时间】:2013-05-01 10:38:45 【问题描述】:

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

【问题讨论】:

不能简单地在标题后面放一些空行吗?你甚至可以使用textlinespacing kwarg。 我发现只是在字符串离开我需要的空间之后添加了 \n 【参考方案1】:

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

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

调整pad,直到您对轴标题位置感到满意为止。这种方法比使用rcParams 的优点是它只改变了这一轴标题。

【讨论】:

谢谢!你知道如何为 ax 标签添加内边距吗? 您可以使用ax.xaxis.labelpad=10.0 以及yaxiszaxis 为什么它没有被标记为答案?谢谢,顺便说一句! @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);      

【讨论】:

好!在 matplotlib v2.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中标题和绘图之间的距离? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

增加饼图matplotlib中标签的字体大小[重复]

新闻列表中标题和日期的左右分别对齐的几种处理方法

python3——matplotlib绘图2

如何增加ggplot2中分组条之间的空间?

如何阻止 Matplotlib 导航工具栏缩放在绘图更新时重置?

Python 绘图包 Matplotlib Pyplot 教程