Jak dodać tytuł do Seaborn Facet Plot


101

Jak dodać tytuł do tej działki morskiej? Nadajmy temu tytuł „JESTEM TYTUŁEM”.

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

wątek

Odpowiedzi:


174

Po tych wierszach:

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

Jeśli dodasz podtytuł bez dostosowywania osi, tytuły aspektu morskiego będą na niego nakładać się.

(Z różnymi danymi):

wprowadź opis obrazu tutaj


6
To zadziałało dla mnie, ale musiałem użyć plt.subplots_adjust(top=0.8)zamiast top=0.9.
Mack

5
suptitlema również yparametr. To zadziałało dla mnie:g.fig.suptitle('foo', y=1.05)
trianta2

1
To nie zadziała, jeśli użyjesz col_wrapjako, wtedy zarówno figura, jak i wykres podrzędny ostatniej osi (na dole po prawej) odziedziczą ten sam tytuł.
xApple


25

W notatniku ipython to zadziałało!

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

10
Próbowałem tego i dodałem tytuł do prawego dolnego rogu rysunku, a nie całą figurę
crypdick

12
Dostęp pltza pośrednictwem snspakietu został wycofany w wersji 0.8.1. Należy to zrobić za pomocąplt.title('YOUR TITLE HERE')
Mack

2
AttributeError: moduł „seaborn” nie ma atrybutu „plt”
xApple

AttributeError: moduł „seaborn” nie ma atrybutu „plt”
seralouk

3

Dla mnie zadziałało:

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


2
AttributeError: moduł „seaborn” nie ma atrybutu „plt”
xApple

1
AttributeError: moduł „seaborn” nie ma atrybutu „plt”
seralouk

0

Odpowiedzi używają sns.plt.title()i sns.plt.suptitle()już nie działają.

Zamiast tego musisz użyć title()funkcji matplotlib :

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

1
To nie ustawia tytułu we właściwej lokalizacji dla mnie.
Gabriel Romon

4
Próbowałeś plt.suptitle()?
crypdick

Twoja odpowiedź nie działa, ponieważ wpływa na tytuł wykresu pomocniczego ostatniej osi (na dole po prawej). Twoja sugestia plt.suptitle()modyfikuje również ostatnie osie, a także główną figurę.
xApple

0
plt.suptitle("Title") 

lub

plt.title("Title")

To zadziałało dla mnie.


Drugie rozwiązanie nie działa, podczas gdy pierwsze rozwiązanie tworzy brzydkie połączenie tytułów podtytułów i aspektów. Musisz użyć za pomocą współrzędnych.
MERose

0

Tytuł nie zostanie wyśrodkowany z tytułami działek pomocniczych. Aby ustawić pozycję tytułu, możesz użyć plt.suptitle("Title", x=center)

W moim przypadku moje podploty były w siatce 2x1, więc mogłem użyć bbox = g.axes[0,0].get_position()do znalezienia obwiedni, a następniecenter=0.5*(bbox.x1+bbox.x2)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.