Comment afficher les valeurs sur Seaborn Barplot (avec exemples)
Vous pouvez utiliser la fonction suivante pour afficher les valeurs sur un barplot marin :
def show_values(axs, orient="v", space=.01): def _single(ax): if orient == "v": for p in ax.patches: _x = p.get_x() + p.get_width() / 2 _y = p.get_y() + p.get_height() + (p.get_height()*0.01) value = '{:.1f}'.format(p.get_height()) ax.text(_x, _y, value, ha="center") elif orient == "h": for p in ax.patches: _x = p.get_x() + p.get_width() + float(space) _y = p.get_y() + p.get_height() - (p.get_height()*0.5) value = '{:.1f}'.format(p.get_width()) ax.text(_x, _y, value, ha="left") if isinstance(axs, np.ndarray): for idx, ax in np.ndenumerate(axs): _single(ax) else: _single(axs)
Cette fonction fonctionne pour les barplots horizontaux et verticaux.
Les exemples suivants montrent comment utiliser cette fonction dans la pratique avec l’ensemble de données « conseils » Seaborn :
import seaborn as sns
import pandas as pd
import numpy as np
#load tips dataset
data = sns.load_dataset("tips")
#view first five rows
data.head()
total_bill tip sex smoker day time size
0 16.99 1.01 Female No Sun Dinner 2
1 10.34 1.66 Male No Sun Dinner 3
2 21.01 3.50 Male No Sun Dinner 3
3 23.68 3.31 Male No Sun Dinner 2
4 24.59 3.61 Female No Sun Dinner 4
Exemple 1 : Afficher les valeurs sur un barplot vertical
Le code suivant montre comment afficher les valeurs sur un barplot vertical :
#create vertical barplot p = sns.barplot(x="day", y="tip", data=data, ci=None) #show values on barplot show_values(p)
Exemple 2 : Afficher les valeurs sur un barplot horizontal
Le code suivant montre comment afficher les valeurs sur un barplot horizontal :
#create horizontal barplot p = sns.barplot(x="tip", y="day", data=data, ci=None) #show values on barplot show_values(p, "h", space=0)
Notez que plus la valeur que vous utilisez pour l’espace est grande, plus les étiquettes seront éloignées des barres.
Par exemple, changeons l’espace de 0 à .05 :
#create horizontal barplot p = sns.barplot(x="tip", y="day", data=data, ci=None) #show values on barplot show_values(p, "h", space=0.05)
Remarque : Pour modifier le nombre de décimales affichées, modifiez simplement la valeur dans cette ligne de la fonction :
value = '{:.1f}'.format(p.get_height())
Par exemple, changez-le de . 1f à .2f pour afficher deux décimales au lieu d’une.
Ressources additionnelles
Les didacticiels suivants expliquent comment exécuter d’autres fonctions courantes dans seaborn :
Comment créer un diagramme circulaire dans Seaborn
Comment créer un tracé de série chronologique dans Seaborn
Comment créer plusieurs tracés Seaborn dans une seule figure