Maison  >  Article  >  développement back-end  >  Comment aligner correctement les barres et ajouter des annotations dans un graphique à barres groupées avec Matplotlib ?

Comment aligner correctement les barres et ajouter des annotations dans un graphique à barres groupées avec Matplotlib ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-26 14:57:03651parcourir

How to Correctly Align Bars and Add Annotations in a Grouped Bar Chart with Matplotlib?

Traçage et annotation d'un graphique à barres groupées

Ce guide aborde un problème fréquemment rencontré dans matplotlib lors de la création d'un graphique à barres groupé. Le code fourni vise à visualiser l'intérêt des répondants pour divers domaines de la science des données avec des barres représentant leurs niveaux d'intérêt (Très intéressé, Plutôt intéressé, Pas intéressé).

Analyse du problème

Le problème dans le code fourni réside dans le calcul des largeurs des barres. Le code définit w=0,8 sans tenir compte du nombre de barres dans le tracé. Pour aligner correctement les barres, w doit être divisé par le nombre de barres.

Solution

Pour résoudre ce problème, ajustez le calcul de la largeur des barres pour prendre en compte le nombre de barres dans l'intrigue. Une approche plus efficace consiste à utiliser la méthode pandas.DataFrame.plot pour générer le tracé avec des annotations.

Code mis à jour à l'aide de DataFrame.plot

<code class="python">import pandas as pd
import matplotlib.pyplot as plt

# Create the DataFrame
file = "https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/DV0101EN/labs/coursera/Topic_Survey_Assignment.csv"
df = pd.read_csv(file, index_col=0)

# Calculate percentages
df = df.div(2233)

# Plot the grouped bar chart
ax = df.plot.bar(color=['#5cb85c', '#5bc0de', '#d9534f'], figsize=(20, 8), rot=0, ylabel='Percentage', title="The percentage of the respondents' interest in the different data science Area")

# Add annotations
for p in ax.patches:
    ax.annotate(f'{p.get_height():0.2f}', (p.get_x() + p.get_width() / 2., p.get_height()), ha='center', va='center', xytext=(0, 10), textcoords='offset points')</code>

Sortie :

[Image du graphique à barres corrigé]

Ce code mis à jour génère un graphique à barres groupé correctement aligné avec des annotations indiquant les pourcentages pour chaque barre.

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!

Déclaration:
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