1. ホーム
  2. python

[解決済み] Seaborn Facet Plotにタイトルを追加する方法

2022-08-01 06:04:04

質問

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!')

FacetGridオブジェクトはmatplotlibのFigureオブジェクトで構築されています。 subplots_adjust , suptitle は、一般的なmatplotlibから馴染みがあるかもしれません。