Maison > développement back-end > Tutoriel Python > Comment centrer les étiquettes de données dans un graphique à barres empilées Matplotlib ?

Comment centrer les étiquettes de données dans un graphique à barres empilées Matplotlib ?

DDD
Libérer: 2024-11-24 00:41:10
original
486 Les gens l'ont consulté

How to Center Data Labels in a Matplotlib Stacked Bar Chart?

Graphique à barres empilées avec étiquettes centrées : une solution améliorée utilisant bar_label

Dans matplotlib, une méthode raffinée pour centrer avec précision les étiquettes de données dans un empilement Le graphique à barres est disponible à l'aide de la fonction bar_label. Voici comment procéder :

  1. Importer les modules nécessaires : Commencez par importer les bibliothèques essentielles.
import pandas as pd
import matplotlib.pyplot as plt
Copier après la connexion
  1. Créer et remplissez votre DataFrame : Pour créer un graphique à barres empilées, il est recommandé d'utiliser un pandas DataFrame. Voici un exemple de DataFrame avec trois colonnes : "A", "B" et "C".
# sample DataFrame
df = pd.DataFrame({'A': [45, 17, 47], 'B': [91, 70, 72], 'C': [68, 43, 13]})
Copier après la connexion
  1. Tracez le graphique à barres empilées : utilisez le DataFrame pour tracer la barre empilée graphique.
ax = df.plot(kind='bar', stacked=True, figsize=(8, 6), rot=0, xlabel='Class', ylabel='Count')
Copier après la connexion
  1. Étiquetez les barres : Maintenant, étiquetons les barres tout en nous assurant qu'elles sont centrées. Utilisez bar_label pour y parvenir.
for c in ax.containers:
    ax.bar_label(c, label_type='center')
Copier après la connexion

Personnalisation facultative

  • Zéro ou petites étiquettes : pour les segments avec zéro ou de petites valeurs, ajustez la visibilité de l'étiquette selon vos besoins. Par exemple, affichez les valeurs uniquement lorsqu'elles dépassent un certain seuil ou utilisez l'option label_type='edge'.
labels = [v.get_height() if v.get_height() > 0 else '' for v in c]  # for segments with small or zero values
Copier après la connexion
  • Format personnalisé : Modifier le libellé format pour répondre à vos exigences.
ax.bar_label(c, fmt=lambda x: f'{x:.0f}' if x > 0 else '', label_type='center')  # to show no decimal places
Copier après la connexion

Seaborn Alternative

Si vous préférez travailler avec Seaborn, vous pouvez également créer un graphique à barres empilées et étiqueter les barres.

  1. Préparez le DataFrame : similaire vers matplotlib, créez un DataFrame pandas avec les données.
  2. Convertissez le DataFrame en long form : seaborn nécessite que le DataFrame soit sous une forme longue, ce qui peut être obtenu en utilisant melt.
  3. Tracez le graphique et étiquetez les barres : tracez le graphique à barres empilées et appliquez bar_label comme dans matplotlib.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal