Comment ajouter un titre au boxplot Seaborn

108

Cela semble assez googleable mais je n'ai pas été en mesure de trouver quelque chose en ligne qui fonctionne.

J'ai essayé les deux sns.boxplot('Day', 'Count', data= gg).title('lalala')et sns.boxplot('Day', 'Count', data= gg).suptitle('lalala'). Aucun n'a fonctionné. Je pense que c'est peut-être parce que je travaille également avec matplotlib.

il fait trop froid
la source

Réponses:

188

La boîte à moustaches Seaborn renvoie une instance d'axes matplotlib. Contrairement à pyplot lui-même, qui a une méthode plt.title(), l'argument correspondant pour un axe est ax.set_title(). Par conséquent, vous devez appeler

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

Un exemple complet serait:

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()

Bien sûr, vous pouvez également utiliser l'instance des axes renvoyée pour la rendre plus lisible:

ax = sns.boxplot('Day', 'Count', data= gg)
ax.set_title('lalala')
ax.set_ylabel('lololo')
ImportanceOfErnest
la source
4
c'est dommage set_title()et les fonctions similaires ne le font pas return self, ce serait bien.
Laurens Koppenol
Le credo de @LaurensKoppenol Matplotlib est de renvoyer l'objet que la méthode crée ou manipule. C'est une question de flexibilité; et matplotlib veut explicitement donner aux utilisateurs cette flexibilité. Des API de plus haut niveau qui se trouvent au-dessus de matplotlib décident souvent d'autoriser le chaînage, mais dans ces cas, vous rencontrez des problèmes pour manipuler les objets sous-jacents lorsque vous souhaitez un comportement non standard.
ImportanceOfBeingErnest
lors de la combinaison des différentes interfaces matplotlib a je suis tout à fait d'accord
Laurens Koppenol
AttributeError: l'objet 'FacetGrid' n'a pas d'attribut 'set_title'
Dumb ML
29

Essayez d'ajouter ceci à la fin de votre code:

import matplotlib.pyplot as plt

plt.title('add title here')
Stefano Potter
la source
10

La fonction sns.boxplot () renvoie l'objet Axes (matplotlib.axes.Axes). Veuillez consulter la documentation, vous pouvez ajouter un titre en utilisant la méthode 'set' comme ci-dessous:

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

vous pouvez également ajouter d'autres paramètres comme xlabel, ylabel à la méthode set.

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

Il existe d'autres méthodes comme mentionné dans la documentation matplotlib.axes.Axes pour ajouter des tuiles, des légendes et des étiquettes.

akhil penta
la source
7

Pour un seul boxplot:

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

Pour plus de boxplot dans le même graphique:

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

par exemple

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

.set_title ('') peut être utilisé pour ajouter un titre à Seaborn Plot

import seaborn as sb
sb.boxplot().set_title('Title')
Kranthi Kumar Valaboju
la source