Cara menambahkan judul ke Seaborn Facet Plot

96

Bagaimana cara menambahkan judul ke plot Seaborne ini? Mari kita beri judul '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")

merencanakan

Saya bukan George
sumber

Jawaban:

167

Setelah garis-garis itu:

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

Jika Anda menambahkan judul tambahan tanpa menyesuaikan porosnya, judul segi dasar laut akan tumpang tindih.

(Dengan data berbeda):

masukkan deskripsi gambar di sini

cphlewis
sumber
6
Ini bekerja untuk saya tapi saya harus menggunakan plt.subplots_adjust(top=0.8)bukan top=0.9.
Mack
5
suptitlejuga memiliki yparameter. Ini berhasil bagi saya:g.fig.suptitle('foo', y=1.05)
trianta2
1
Ini tidak bekerja jika Anda menggunakan col_wrapkarena gambar dan subplot sumbu terakhir (kanan bawah) akan mewarisi judul yang sama.
xApple
25

Di notebook ipython, ini berhasil untuk saya!

sns.plt.title('YOUR TITLE HERE')
Meera Lakhavani
sumber
10
Saya mencoba ini dan itu menambahkan judul ke gambar kanan bawah, bukan keseluruhan gambar
crypdick
12
Mengakses pltmelalui snspaket sudah tidak digunakan lagi di 0.8.1. Ini harus dilakukan dengan menggunakanplt.title('YOUR TITLE HERE')
Mack
2
AttributeError: modul 'seaborn' tidak memiliki atribut 'plt'
xApple
AttributeError: modul 'seaborn' tidak memiliki atribut 'plt'
seralouk
3

Apa yang berhasil bagi saya adalah:

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

pmetzner.dll
sumber
2
AttributeError: modul 'seaborn' tidak memiliki atribut 'plt'
xApple
1
AttributeError: modul 'seaborn' tidak memiliki atribut 'plt'
seralouk
1
plt.suptitle("Title") 

atau

plt.title("Title")

Ini berhasil untuk saya.

Vraj Patel
sumber
Solusi kedua tidak berfungsi, sedangkan solusi pertama membuat interaksi judul suptitle dan facet yang jelek. Anda perlu menggunakan menggunakan koordinat.
MERose
0

Jawabannya menggunakan sns.plt.title()dan sns.plt.suptitle()tidak berfungsi lagi.

Sebagai gantinya, Anda perlu menggunakan title()fungsi matplotlib :

import matplotlib.pyplot as plt
sns.FacetGrid(<whatever>)
plt.title("A title")
crypdick
sumber
1
Ini tidak menyetel judul di lokasi yang benar untuk saya.
Gabriel Romon
4
Apakah kamu sudah mencobanya plt.suptitle()?
crypdick
Jawaban Anda tidak berfungsi karena memengaruhi judul subplot sumbu terakhir (kanan bawah). Saran Anda plt.suptitle()juga mengubah sumbu terakhir serta gambar utama.
xApple
0

Judul tidak akan rata tengah dengan judul subplot. Untuk mengatur posisi judul bisa Anda gunakan plt.suptitle("Title", x=center)

Dalam kasus saya, subplot saya berada dalam kisi 2x1, jadi saya dapat menggunakan bbox = g.axes[0,0].get_position()untuk menemukan kotak pembatas dan kemudiancenter=0.5*(bbox.x1+bbox.x2)

ndw
sumber