Maison  >  Article  >  développement back-end  >  Comment créer un graphique à barres empilées en Python avec des données structurées différemment ?

Comment créer un graphique à barres empilées en Python avec des données structurées différemment ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-21 19:38:29861parcourir

How to Create a Stacked Bar Chart in Python with Differently Structured Data?

Tracer un graphique à barres empilées en Python

Problème :

Créer un graphique à barres empilées avec des données structurées différemment d'un exemple de feuille de calcul.

Le DataFrame contient les noms de sites et le nombre d'incidents « ABUS » ou « NFF ». L'objectif est de créer un graphique à barres avec des barres empilées représentant le nombre d'incidents par nom de site pour les deux types d'incidents. Les données sont données dans un fichier CSV.

Solution :

Pour créer un graphique à barres empilées, vous pouvez utiliser l'option stacked=True dans la fonction de tracé. La clé est de structurer vos données de manière appropriée. Voici une solution :

  1. Regroupez les données par « Nom du site » et « Abus/NFF ».
  2. Utilisez la méthode de comptage pour compter les occurrences au sein de chaque groupe.
  3. Utilisez la méthode unstack pour créer un DataFrame multi-index avec les noms de sites comme index et les types d'incidents comme colonnes.
  4. Utilisez la méthode fillna pour remplir toutes les valeurs manquantes avec 0.
  5. Enfin, appelez la méthode plot avec l'option stacked=True pour créer le graphique à barres empilées.
<code class="python"># Import necessary libraries
import pandas as pd
import matplotlib.pyplot as plt

# Read CSV file
df = pd.read_csv('data.csv')

# Group data and count occurrences
df2 = df.groupby(['Site Name', 'Abuse/NFF'])['Site Name'].count().unstack('Abuse/NFF').fillna(0)

# Plot stacked bar chart
df2[['abuse','nff']].plot(kind='bar', stacked=True)
plt.show()</code>

Cela devrait générer un graphique à barres empilées avec le format souhaité.

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