如何为 Seaborn Facet Plot 添加标题
How to add a title to Seaborn Facet Plot
如何为这个 Seaborne 情节添加标题?让我们给它一个标题 'I AM A TITLE'.
tips = sns.load_dataset("tips")
g = sns.FacetGrid(tips, col="sex", row="smoker", margin_titles=True)
g.map(sns.plt.scatter, "total_bill", "tip")
稍微更新,seaborn 0.11.1:
Seaborn 的 relplot
函数创建一个 FacetGrid 并为每个子图提供自己的解释性标题。您可以在整个内容上添加标题:
import seaborn as sns
tips = sns.load_dataset('tips')
rp = sns.relplot(data=tips, x='total_bill', y='tip',
col='sex', row='smoker',
kind='scatter')
# rp is a FacetGrid;
# relplot is a nice organized way to use it
rp.fig.subplots_adjust(top=0.9) # adjust the Figure in rp
rp.fig.suptitle('ONE TITLE FOR ALL')
如果您直接创建 FacetGrid,就像在原始示例中一样,它会自动添加列和行标签,而不是单独的子图标题。我们仍然可以为整个事物添加标题:
from matplotlib.pyplot import scatter as plt_scatter
g = sns.FacetGrid(tips, col='sex', row='smoker',
margin_titles=True)
g.map(plt_scatter, 'total_bill', 'tip')
g.fig.subplots_adjust(top=0.9)
g.fig.suptitle('TITLE!')
FacetGridobjects是用matplotlib构建的图objects,所以我们可以使用subplots_adjust
,suptitle
,一般来说matplotlib可能比较熟悉。
在 ipython 笔记本中,这对我有用!
sns.plt.title('YOUR TITLE HERE')
对我有用的是:
sns.plt.suptitle('YOUR TITLE HERE')
g.fig.subplots_adjust(top=0.9)
g.fig.suptitle('Title', fontsize=16)
使用 sns.plt.title()
和 sns.plt.suptitle()
的答案不再有效。
相反,您需要使用 matplotlib 的 title()
函数:
import matplotlib.pyplot as plt
sns.FacetGrid(<whatever>)
plt.title("A title")
plt.suptitle("Title")
或
plt.title("Title")
这对我有用。
标题不会与次要标题居中对齐。
要设置标题的位置,您可以使用
plt.suptitle("Title", x=center)
就我而言,我的子图位于 2x1 网格中,因此我能够使用
bbox = g.axes[0,0].get_position()
找到边界框然后 center=0.5*(bbox.x1+bbox.x2)
如何为这个 Seaborne 情节添加标题?让我们给它一个标题 'I AM A TITLE'.
tips = sns.load_dataset("tips")
g = sns.FacetGrid(tips, col="sex", row="smoker", margin_titles=True)
g.map(sns.plt.scatter, "total_bill", "tip")
稍微更新,seaborn 0.11.1:
Seaborn 的 relplot
函数创建一个 FacetGrid 并为每个子图提供自己的解释性标题。您可以在整个内容上添加标题:
import seaborn as sns
tips = sns.load_dataset('tips')
rp = sns.relplot(data=tips, x='total_bill', y='tip',
col='sex', row='smoker',
kind='scatter')
# rp is a FacetGrid;
# relplot is a nice organized way to use it
rp.fig.subplots_adjust(top=0.9) # adjust the Figure in rp
rp.fig.suptitle('ONE TITLE FOR ALL')
如果您直接创建 FacetGrid,就像在原始示例中一样,它会自动添加列和行标签,而不是单独的子图标题。我们仍然可以为整个事物添加标题:
from matplotlib.pyplot import scatter as plt_scatter
g = sns.FacetGrid(tips, col='sex', row='smoker',
margin_titles=True)
g.map(plt_scatter, 'total_bill', 'tip')
g.fig.subplots_adjust(top=0.9)
g.fig.suptitle('TITLE!')
FacetGridobjects是用matplotlib构建的图objects,所以我们可以使用subplots_adjust
,suptitle
,一般来说matplotlib可能比较熟悉。
在 ipython 笔记本中,这对我有用!
sns.plt.title('YOUR TITLE HERE')
对我有用的是:
sns.plt.suptitle('YOUR TITLE HERE')
g.fig.subplots_adjust(top=0.9)
g.fig.suptitle('Title', fontsize=16)
使用 sns.plt.title()
和 sns.plt.suptitle()
的答案不再有效。
相反,您需要使用 matplotlib 的 title()
函数:
import matplotlib.pyplot as plt
sns.FacetGrid(<whatever>)
plt.title("A title")
plt.suptitle("Title")
或
plt.title("Title")
这对我有用。
标题不会与次要标题居中对齐。
要设置标题的位置,您可以使用
plt.suptitle("Title", x=center)
就我而言,我的子图位于 2x1 网格中,因此我能够使用
bbox = g.axes[0,0].get_position()
找到边界框然后 center=0.5*(bbox.x1+bbox.x2)