Maison > développement back-end > Tutoriel Python > Comment centrer parfaitement les étiquettes de données dans des graphiques à barres empilées à l'aide de Python ?

Comment centrer parfaitement les étiquettes de données dans des graphiques à barres empilées à l'aide de Python ?

Susan Sarandon
Libérer: 2024-11-19 07:06:02
original
359 Les gens l'ont consulté

How to Perfectly Center Data Labels in Stacked Bar Charts Using Python?

Centrage des étiquettes de données dans les graphiques à barres empilées

Lors de la création d'un graphique à barres empilées, il peut être difficile de s'assurer que les étiquettes de données sont correctement centrées dans chaque section du bar. Ce problème peut survenir pour diverses raisons, telles que la hauteur des barres, l'espacement entre les barres et la taille de la police des étiquettes.

Utilisation de Pandas et Matplotlib.pyplot

Une approche robuste et concise de ce problème consiste à utiliser Pandas et Matplotlib.pyplot. Pandas offre un moyen pratique de représenter et de manipuler des données, tandis que Matplotlib.pyplot propose un ensemble d'outils puissants pour créer des visualisations. Voici comment centrer les étiquettes de données dans un graphique à barres empilées en utilisant cette approche :

  1. Créez un DataFrame Pandas avec les données que vous souhaitez tracer.
  2. Utilisez le .plot(stacked =True, kind='bar') pour générer le graphique à barres empilées.
  3. Parcourez les conteneurs dans le tracé en utilisant for c dans ax.containers :.
  4. Utilisez fmt=lambda x : f'{x:.0f}' si x > 0 else '' pour personnaliser le format de l'étiquette, en supprimant les décimales et en affichant uniquement les valeurs non nulles.
  5. Appelez ax.bar_label(c, fmt=fmt) pour centrer les étiquettes de données dans chaque section de la barre.

Utilisation de Seaborn

Seaborn, une API de haut niveau basée sur Matplotlib, offre une manière alternative de créer des graphiques à barres empilés. Bien que Seaborn ne prenne pas directement en charge l'empilement, il offre des options pour créer des tracés empilés à l'aide de sns.histplot ou sns.displot.

Pour le tracé au niveau de la figure utilisant sns.displot, parcourez les axes puis les conteneurs. au sein de chaque axe. Pour chaque conteneur, utilisez ax.bar_label(c, fmt=fmt) pour centrer les étiquettes de données.

Méthode originale avec correctifs

Une méthode qui fonctionne directement avec les objets Matplotlib.patches.Rectangle peut être utilisé pour extraire les valeurs et la position de chaque section de la barre empilée. Cette méthode implique :

  1. Accéder à la liste des correctifs à l'aide de l'attribut .patches.
  2. Parcourir les correctifs et extraire la hauteur, la largeur, la coordonnée x et la coordonnée y.
  3. Calculer le point central de chaque section et placer l'étiquette en conséquence.
  4. Personnaliser le texte de l'étiquette selon les besoins.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal