Tracer un graphique à barres empilées à l'aide de Pandas
Question :
Comment puis-je créer un graphique à barres empilées avec des pandas, similaire à l'image fournie ? Mon cadre de données actuel se compose de colonnes distinctes pour les comptes « Nom du site » et « Abus/NFF », et je ne parviens pas à organiser les données ou à générer le graphique à barres empilées.
Solution :
1. Préparation des données :
Créez un nouveau cadre de données en regroupant les données par « Nom du site » et « Abus/NFF » et en comptant les occurrences de chaque combinaison.
2 . Empiler les données :
Utilisez la méthode .unstack() pour créer une trame de données empilée, avec « Nom du site » comme index et « Abuse/NFF » comme colonnes.
3. Remplissage des valeurs manquantes :
Gérez toutes les valeurs manquantes en les remplissant avec des zéros à l'aide de la méthode .fillna(0).
4. Tracer le graphique à barres :
Utilisez la méthode .plot() avec le paramètre kind défini sur 'bar' et le paramètre empilé défini sur True pour générer un graphique à barres empilées.
Code Python :
<code class="python">import pandas as pd import matplotlib.pyplot as plt # Create a dataframe from the CSV file df = pd.read_csv("data.csv") # Group by "Site Name" and "Abuse/NFF" and count occurrences df2 = df.groupby(['Site Name', 'Abuse/NFF'])['Site Name'].count().unstack('Abuse/NFF').fillna(0) # Plot the stacked bar chart df2[['abuse','nff']].plot(kind='bar', stacked=True) plt.show()</code>
Sortie :
Le tracé résultant ressemblera à l'image fournie dans la question d'origine, affichant le nombre empilé de "Abus" et "NFF" pour chaque "Nom du site".
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!