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.

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

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

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.


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

4

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

import seaborn as sb
sb.boxplot().set_title('Title')
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.