So fügen Sie Seaborn Facet Plot einen Titel hinzu


93

Wie füge ich diesem Seaborne-Plot einen Titel hinzu? Geben wir ihm den Titel "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")

Handlung

Antworten:


162

Nach diesen Zeilen:

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

Wenn Sie einen Untertitel hinzufügen, ohne die Achse anzupassen, überlappen ihn die Titel der seegeborenen Facetten.

(Mit unterschiedlichen Daten):

Geben Sie hier die Bildbeschreibung ein


6
Das hat bei mir funktioniert, aber ich musste plt.subplots_adjust(top=0.8)stattdessen verwenden top=0.9.
Mack

4
suptitlehat auch einen yParameter. Dies funktionierte für mich:g.fig.suptitle('foo', y=1.05)
Trianta2

1
Dies funktioniert nicht, wenn Sie verwenden, col_wrapda dann sowohl die Abbildung als auch die Unterzeichnung der letzten Achse (unten rechts) denselben Titel erben.
xApple

25

In ipython notebook hat das bei mir funktioniert!

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

10
Ich habe es versucht und es hat einen Titel zur unteren rechten Figur hinzugefügt, nicht die ganze Figur
Crypdick

12
Der Zugriff pltüber das snsPaket ist in 0.8.1 veraltet. Dies sollte mitplt.title('YOUR TITLE HERE')
Mack

2
AttributeError: Modul 'seaborn' hat kein Attribut 'plt'
xApple

AttributeError: Modul 'seaborn' hat kein Attribut 'plt'
seralouk


3

Was für mich funktioniert hat war:

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


2
AttributeError: Modul 'seaborn' hat kein Attribut 'plt'
xApple

1
AttributeError: Modul 'seaborn' hat kein Attribut 'plt'
seralouk

1
plt.suptitle("Title") 

oder

plt.title("Title")

Das hat bei mir funktioniert.


0

Die Antworten mit sns.plt.title()und sns.plt.suptitle()funktionieren nicht mehr.

Stattdessen müssen Sie die title()Funktion von matplotlib verwenden:

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

1
Dies setzt den Titel nicht an der richtigen Stelle für mich.
Gabriel Romon

4
Hast du es versucht plt.suptitle()?
Crypdick

Ihre Antwort funktioniert nicht, da sie sich auf den Titel der Nebenhandlung der letzten Achsen (unten rechts) auswirkt. Ihr Vorschlag plt.suptitle()ändert auch die letzten Achsen sowie die Hauptfigur.
xApple

0

Der Titel wird nicht mittig an den Unterplottiteln ausgerichtet. Um die Position des Titels festzulegen, können Sie verwenden plt.suptitle("Title", x=center)

In meinem Fall befanden sich meine Nebenhandlungen in einem 2x1-Raster, sodass ich bbox = g.axes[0,0].get_position()den Begrenzungsrahmen finden konnte und danncenter=0.5*(bbox.x1+bbox.x2)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.