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