Comment afficher le pourcentage sur l’axe Y de l’histogramme Pandas



Vous pouvez utiliser la syntaxe de base suivante pour afficher les pourcentages sur l’axe y d’un histogramme pandas :

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import PercentFormatter

#create histogram, using percentages instead of counts
plt.hist(df['my_column'], weights=np.ones(len(df)) / len(df))

#apply percentage format to y-axis
plt.gca().yaxis.set_major_formatter(PercentFormatter(1))
plt.show()

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : Afficher le pourcentage sur l’axe Y de l’histogramme Pandas

Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur divers joueurs de basket-ball :

import pandas as pd
import numpy as np

#make this example reproducible
np.random.seed(1)

#create DataFrame
df = pd.DataFrame({'points': np.random.normal(loc=20, scale=2, size=300),
                   'assists': np.random.normal(loc=14, scale=3, size=300),
                   'rebounds': np.random.normal(loc=12, scale=1, size=300)})

#view head of DataFrame
print(df.head())

      points    assists   rebounds
0  23.248691  20.197350  10.927036
1  18.776487   9.586529  12.495159
2  18.943656  11.509484  11.047938
3  17.854063  11.358267  11.481854
4  21.730815  13.162707  10.538596

Si nous créons un histogramme pour visualiser la distribution des valeurs dans la colonne des points , l’axe des y affichera les décomptes par défaut :

import matplotlib.pyplot as plt 

#create histogram for points columb
plt.hist(df['points'], edgecolor='black')

Pour afficher à la place les pourcentages sur l’axe des y, nous pouvons utiliser la fonction PercentFormatter :

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import PercentFormatter

#create histogram, using percentages instead of counts
plt.hist(df['points'], weights=np.ones(len(df)) / len(df), edgecolor='black')

#apply percentage format to y-axis
plt.gca().yaxis.set_major_formatter(PercentFormatter(1))
plt.show()

histogramme des pandas avec pourcentage sur l'axe y

Notez que l’axe Y affiche désormais les pourcentages.

Si vous souhaitez supprimer les décimales des pourcentages, utilisez simplement l’argument decimals=0 dans la fonction PercentFormatter() :

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import PercentFormatter

#create histogram, using percentages instead of counts
plt.hist(df['points'], weights=np.ones(len(df)) / len(df), edgecolor='black')

#apply percentage format to y-axis
plt.gca().yaxis.set_major_formatter(PercentFormatter(1, decimals=0))
plt.show()

L'histogramme des pandas supprime la décimale du pourcentage sur l'axe y

L’axe Y affiche désormais les pourcentages sans aucune décimale.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :

Comment modifier le nombre de bacs utilisés dans l’histogramme Pandas
Comment modifier la plage de l’axe X dans l’histogramme Pandas
Comment tracer des histogrammes par groupe chez Pandas

Ajouter un commentaire

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