Pandas : Comment créer un tracé à barres à partir d’un tableau croisé
Vous pouvez utiliser les méthodes suivantes pour créer un graphique à barres afin de visualiser les décomptes dans un tableau croisé Pandas :
Méthode 1 : créer un tracé à barres groupées
import matplotlib.pyplot as plt my_crosstab.plot(kind='bar')
Méthode 2 : créer un tracé à barres empilées
import matplotlib.pyplot as plt my_crosstab.plot(kind='bar', stacked=True)
Les exemples suivants montrent comment utiliser chacune de ces méthodes en pratique avec le tableau croisé pandas suivant :
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C'], 'position':['G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'], 'points': [22, 25, 24, 39, 34, 20, 18, 17, 20, 19, 22]}) #create crosstab to display count of players by team and position my_crosstab = pd.crosstab(df.team, df.position) #view crosstab print(my_crosstab) position F G team A 1 2 B 3 1 C 2 2
Exemple 1 : Créer un tracé à barres groupées à partir d’un tableau croisé
Nous pouvons utiliser la syntaxe suivante pour créer un tracé à barres groupées à partir du tableau croisé :
import matplotlib.pyplot as plt #create grouped bar plot my_crosstab.plot(kind='bar', rot=0)
Remarque : L’argument rot=0 fait pivoter les étiquettes de l’axe des x de 90 degrés pour les rendre plus faciles à lire.
L’axe des X affiche les noms des équipes tandis que les barres groupées affichent le nombre de fréquences de chaque position.
Par exemple, on peut voir :
- Il y a 1 joueur dans l’équipe A avec la position F.
- Il y a 2 joueurs dans l’équipe A avec la position G.
Et ainsi de suite.
Exemple 2 : Créer un tracé à barres empilées à partir d’un tableau croisé
Nous pouvons utiliser la syntaxe suivante pour créer un tracé à barres empilées à partir du tableau croisé :
import matplotlib.pyplot as plt #create stacked bar plot my_crosstab.plot(kind='bar', stacked=True, rot=0)
Remarque : L’argument stacked=True nous a permis de créer un tracé à barres empilées au lieu d’un tracé à barres groupées.
L’axe des X affiche les noms des équipes tandis que les barres empilées affichent le nombre de fréquences de chaque position.
Par exemple, on peut voir :
- Il y a 1 joueur dans l’équipe A avec la position F.
- Il y a 2 joueurs dans l’équipe A avec la position G.
- Il y a 3 joueurs au total dans l’équipe A.
Et ainsi de suite.
Ce type de tracé est particulièrement utile lorsque nous souhaitons visualiser le nombre total d’éléments pour chaque valeur unique sur l’axe des x.
Remarque : Vous pouvez trouver la documentation complète de la fonction pandas crosstab() ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes chez les pandas :
Pandas : Comment créer un tableau croisé avec des pourcentages
Pandas : Comment utiliser aggfunc dans la fonction crosstab()
Pandas : Comment annoter des barres dans un tracé à barres