El objective aquí es crear una gráfica de barras agrupada, no subplots como la imagen de abajo
¿Hay una forma sencilla de crear un gráfico de barras agrupadas en Python? En este momento, obtengo diagtwigs de barras independientes, en lugar de barras separadas en una gráfica.
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')
Las pandas mostrarán barras agrupadas por columnas. Las entradas en cada fila, pero diferentes columnas constituirán un grupo en el gráfico resultante. Por lo tanto, debe “remodelar” su dataframe para tener el “grupo” como columnas. En este caso puedes pivotar como
df.pivot("column", "group", "val")
productor
group g1 g2 column c1 10 8 c2 12 10 c3 13 12
Al trazar esto se obtendrá un gráfico de barras agrupadas.
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()