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)

tracé à barres groupées de pandas à partir d'un tableau croisé

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

Ajouter un commentaire

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