如何为Seaborn Facet Plot添加标题


95

如何为该海上情节添加标题?让我们给它一个标题“我是标题”。

tips = sns.load_dataset("tips")
g = sns.FacetGrid(tips, col="sex", row="smoker", margin_titles=True)
g.map(sns.plt.scatter, "total_bill", "tip")

情节

Answers:


164

在这些行之后:

plt.subplots_adjust(top=0.9)
g.fig.suptitle('THIS IS A TITLE, YOU BET') # can also get the figure from plt.gcf()

如果添加字幕而不调整轴,则seafacet字幕标题会与之重叠。

(使用不同的数据):

在此处输入图片说明


6
这对我有用plt.subplots_adjust(top=0.8),但是我不得不用代替top=0.9
Mack

5
suptitle也有一个y参数。这对我g.fig.suptitle('foo', y=1.05)
有用

1
如果您使用col_wrap,这将不起作用,因为图形和最后一个轴子图(右下)都将继承相同的标题。
xApple

25

在ipython笔记本中,这对我有用!

sns.plt.title('YOUR TITLE HERE')

10
我尝试过此操作,并在右下角添加了标题,而不是整个数字
crypdick

12
在0.8.1中已弃用plt通过该sns程序包进行访问。这应该使用plt.title('YOUR TITLE HERE')
Mack

2
AttributeError:模块“ seaborn”没有属性“ plt”
xApple

AttributeError:模块“ seaborn”没有属性“ plt”
seralouk


3

对我有用的是:

sns.plt.suptitle('YOUR TITLE HERE')


2
AttributeError:模块“ seaborn”没有属性“ plt”
xApple

1
AttributeError:模块“ seaborn”没有属性“ plt”
seralouk

1
plt.suptitle("Title") 

要么

plt.title("Title")

这对我有用。


0

答案正在使用sns.plt.title()sns.plt.suptitle()不再起作用。

相反,您需要使用matplotlib的title()函数:

import matplotlib.pyplot as plt
sns.FacetGrid(<whatever>)
plt.title("A title")

1
这并没有为我设置正确的标题。
加布里埃尔·罗蒙

4
你尝试了plt.suptitle()吗?
crypdick

您的答案无效,因为它会影响最后一个轴子图的标题(右下)。您的建议plt.suptitle()还修改了最后一个轴以及主要图形。
xApple

0

标题不会与子图标题居中对齐。要设置标题的位置,您可以使用 plt.suptitle("Title", x=center)

就我而言,我的子图位于2x1网格中,因此我能够使用它 bbox = g.axes[0,0].get_position()来找到边界框,然后center=0.5*(bbox.x1+bbox.x2)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.