Le but ici est de créer un graphique à barres groupé, pas des sous-graphiques comme l'image ci-dessous
Existe-t-il un moyen simple de créer un graphique à barres groupé en Python? En ce moment, j'obtiens des graphiques à barres séparés, au lieu de barres distinctes sur un seul graphique.
df = pd.DataFrame([['g1','c1',10],['g1','c2',12],['g1','c3',13],['g2','c1',8],['g2','c2',10],['g2','c3',12]],columns=['group','column','val'])
%matplotlib inline
df.groupby(['group']).plot(kind='bar')
Les pandas afficheront les barres groupées par colonnes. Les entrées dans chaque ligne mais différentes colonnes constitueront un groupe dans le graphique résultant. Par conséquent, vous devez "remodeler" votre trame de données pour avoir le "groupe" en colonnes. Dans ce cas, vous pouvez pivoter comme
df.pivot("column", "group", "val")
produire
group g1 g2
column
c1 10 8
c2 12 10
c3 13 12
Le traçage entraînera un graphique à barres groupé.
import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame([['g1','c1',10],['g1','c2',12],['g1','c3',13],['g2','c1',8],
['g2','c2',10],['g2','c3',12]],columns=['group','column','val'])
df.pivot("column", "group", "val").plot(kind='bar')
plt.show()