Come aggiungere un titolo al boxplot di Seaborn


110

Sembra abbastanza Google ma non sono riuscito a trovare qualcosa online che funzioni.

Ho provato sia sns.boxplot('Day', 'Count', data= gg).title('lalala')e sns.boxplot('Day', 'Count', data= gg).suptitle('lalala'). Nessuno ha funzionato. Penso che potrebbe essere perché sto lavorando anche con matplotlib.

Risposte:


187

Il box plot di Seaborn restituisce un'istanza degli assi matplotlib. A differenza dello stesso pyplot, che ha un metodo plt.title(), l'argomento corrispondente per un asse è ax.set_title(). Quindi è necessario chiamare

sns.boxplot('Day', 'Count', data= gg).set_title('lalala')

Un esempio completo potrebbe essere:

import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset("tips")
sns.boxplot(x=tips["total_bill"]).set_title("LaLaLa")

plt.show()

Ovviamente potresti anche usare l'istanza degli assi restituiti per renderlo più leggibile:

ax = sns.boxplot('Day', 'Count', data= gg)
ax.set_title('lalala')
ax.set_ylabel('lololo')

4
è un peccato set_title()e funzioni simili non lo fanno return self, sarebbe pulito.
Laurens Koppenol

Il credo di @LaurensKoppenol Matplotlib è restituire l'oggetto che il metodo crea o manipola. Questa è una questione di flessibilità; e matplotlib vuole esplicitamente offrire agli utenti questa flessibilità. Le API più di alto livello che si trovano sopra matplotlib spesso decidono di consentire il concatenamento, ma in quei casi si hanno problemi a manipolare gli oggetti sottostanti quando si desidera un comportamento non standard.
ImportanceOfBeingErnest

quando combino le varie interfacce matplotlib sono assolutamente d'accordo
Laurens Koppenol

AttributeError: l'oggetto "FacetGrid" non ha attributo "set_title"
Dumb ML

30

Prova ad aggiungerlo alla fine del codice:

import matplotlib.pyplot as plt

plt.title('add title here')

13

La funzione sns.boxplot () restituisce l'oggetto Axes (matplotlib.axes.Axes). si prega di fare riferimento alla documentazione è possibile aggiungere il titolo utilizzando il metodo "set" come di seguito:

sns.boxplot('Day', 'Count', data=gg).set(title='lalala')

puoi anche aggiungere altri parametri come xlabel, ylabel al metodo set.

sns.boxplot('Day', 'Count', data=gg).set(title='lalala', xlabel='its x_label', ylabel='its y_label')

Esistono altri metodi, come menzionato nella documentazione matplotlib.axes.Axes, per aggiungere tessere, legende ed etichette.


8

Per un singolo grafico a scatole:

import seaborn as sb
sb.boxplot(data=Array).set_title('Title')

Per più boxplot nella stessa trama:

import seaborn as sb
sb.boxplot(data=ArrayofArray).set_title('Title')

per esempio

import seaborn as sb
myarray=[78.195229, 59.104538, 19.884109, 25.941648, 72.234825, 82.313911]
sb.boxplot(data=myarray).set_title('myTitle')

4

.set_title ('') può essere utilizzato per aggiungere un titolo a Seaborn Plot

import seaborn as sb
sb.boxplot().set_title('Title')
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.