Seaborn Facet Plotにタイトルを追加する方法


95

この海上プロットにタイトルを追加するにはどうすればよいですか?「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")

プロット

回答:


164

これらの行の後:

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

軸を調整せずに字幕を追加すると、seabornファセットのタイトルが重複します。

(データが異なる):

ここに画像の説明を入力してください


6
これでうまくいきましたが、のplt.subplots_adjust(top=0.8)代わりに使用する必要がありましたtop=0.9
マック

5
suptitleyパラメータもあります。これは私にとってはg.fig.suptitle('foo', y=1.05)
うまくいき

1
col_wrapFigureと最後のAxesサブプロット(右下)の両方が同じタイトルを継承する場合、これは機能しません。
xApple、

25

ipythonノートブックでは、これは私にとってうまくいきました!

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

10
私はこれを試してみましたが、それは右下の図ではなく、図全体にタイトルを追加
crypdick

12
パッケージをplt介したアクセスsnsは、0.8.1で廃止されました。これは次を使用して行う必要があります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


0

を使用sns.plt.title()sns.plt.suptitle()て回答が機能しなくなりました。

代わりに、matplotlibのtitle()関数を使用する必要があります。

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

1
これでは、タイトルが正しい場所に設定されません。
Gabriel

4
やってみましたplt.suptitle()か?
crypdick

最後のAxesサブプロット(右下)のタイトルに影響を与えるため、答えは機能しません。あなたの提案はplt.suptitle()また、最後の軸だけでなく、メインフィギュアも変更します。
xApple

0

タイトルはサブプロットのタイトルと中央揃えになりません。使用できるタイトルの位置を設定するには plt.suptitle("Title", x=center)

私の場合、私のサブプロットは2x1グリッドにあったので、を使用 bbox = g.axes[0,0].get_position()して境界ボックスを見つけて、center=0.5*(bbox.x1+bbox.x2)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.