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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *