Maison >développement back-end >Tutoriel Python >Comment aligner correctement les barres et ajouter des annotations dans un graphique à barres groupées avec 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!