Graphes à barres empilées avec Matplotlib de Python

Nov 17, 2021
admin

Comme prévu, le graphique est difficile à lire. Essayons le diagramme à barres empilées et ajoutons quelques ajustements.

Premièrement, nous pouvons trier les valeurs avant de les tracer, ce qui nous donne un meilleur sens de l’ordre et facilite la comparaison des barres. Nous le ferons avec la colonne ‘Ventes globales’ puisqu’elle possède le total.

## sort values
df_grouped = df_grouped.sort_values('Global_Sales')
df_grouped

Certains des enregistrements du cadre de données – Image par l’auteur

Auparavant, pour construire un graphique à barres en grappes, nous avons utilisé un tracé pour chaque région où le paramètre de largeur et les ajustements de l’axe des x nous ont aidés à correspondre aux quatre zones de chaque plateforme.

De façon similaire, pour tracer des diagrammes à barres empilées, nous utiliserons un tracé pour chaque région. Cette fois, nous utiliserons le paramètre bas/gauche pour indiquer à Matplotlib ce qui précède les barres que nous dessinons.

plt.bar(, )
plt.bar(, , bottom = )
plt.show()plt.barh(, )
plt.barh(, , left = )
plt.show()

Chartes à barres empilées (verticales/horizontales) – Image de l’auteur

Cool. Nous pouvons utiliser une boucle pour tracer les barres, en passant une liste de zéros pour le paramètre ‘bottom’ dans le premier ensemble et en accumulant les valeurs suivantes pour les régions suivantes.

fields = 
colors =
labels = # figure and axis
fig, ax = plt.subplots(1, figsize=(12, 10))# plot bars
left = len(df_grouped) *
for idx, name in enumerate(fields):
plt.barh(df_grouped.index, df_grouped, left = left, color=colors)
left = left + df_grouped# title, legend, labels
plt.title('Video Game Sales By Platform and Region\n', loc='left')
plt.legend(labels, bbox_to_anchor=(), ncol=4, frameon=False)
plt.xlabel('Millions of copies of all games')# remove spines
ax.spines.set_visible(False)
ax.spines.set_visible(False)
ax.spines.set_visible(False)
ax.spines.set_visible(False)# adjust limits and draw grid lines
plt.ylim(-0.5, ax.get_yticks() + 0.5)
ax.set_axisbelow(True)
ax.xaxis.grid(color='gray', linestyle='dashed')plt.show()

Graphique à barres empilées – Image de l’auteur

Génial, c’est beaucoup plus lisible que le précédent.

Il est important de se rappeler le but de ce graphique avant d’essayer d’en extraire des idées. L’idée ici est de comparer les ventes totales des plateformes et de comprendre la composition de chaque plateforme.

Comparer les totaux à travers les champs et comparer les régions à l’intérieur d’une barre est ok. Comparer les régions de différentes barres, en revanche, peut être très trompeur.

Dans ce cas, nous pouvons comparer la région NA à travers les barres puisqu’elle a le même point de départ pour chaque barre, mais il n’est pas si facile de comparer les autres. Prenez la X360, par exemple, elle a une valeur inférieure pour JP que la PS2, mais il est difficile de comparer si la valeur des Autres est supérieure ou inférieure à celle de la Wii.

Valeur comparable – Image d’auteur
.

Valeur non comparable – Image d’auteur

Supposons que nous changeons l’ordre de la pile, avec Autres ventes comme première barre, et trions les enregistrements par Autres ventes. Il devrait être plus facile de dire laquelle est la plus significative.

## sort values
df_grouped = df_grouped.sort_values('Other_Sales')fields =
colors =
labels =

Graphique à barres empilées, mettant en valeur la catégorie Autres – Image de l’auteur

Il y a deux éléments essentiels dans cette visualisation, l’ordre des catégories dans la pile de barres et l’ordre des lignes.

Si nous voulons mettre l’accent sur une région, nous pouvons trier les enregistrements avec le champ choisi et l’utiliser comme la barre la plus à gauche.

Si ce n’est pas le cas, nous pouvons trier les enregistrements par le total et ordonner les piles avec les catégories qui ont des valeurs plus élevées en premier.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.