Estoy usando el siguiente código para trazar un gráfico de barras:
import matplotlib.pyplot as pls my_df.plot(x='my_timestampe', y='col_A', kind='bar') plt.show()La trama funciona bien. Sin embargo, quiero mejorar el gráfico al tener 3 columnas: 'col_A', 'col_B' y 'col_C', todas en el gráfico. Como en la figura de ejemplo a continuación:
Me gustaría que col_A se muestre en azul sobre el eje x, col_B en rojo debajo del eje x y col_C en verde sobre el eje x. ¿Es esto algo posible en matplotlib? ¿Cómo hago cambios para trazar las tres columnas? ¡Gracias!
Puede trazar varias columnas a la vez proporcionando una lista de nombres de columnas al plot y del gráfico.
df.plot(x="X", y=["A", "B", "C"], kind="bar")Esto producirá un gráfico donde las barras están colocadas una al lado de la otra.
Para que se superpongan, deberá llamar a plot varias veces y proporcionar los ejes para trazar como un argumento ax para la trama.
import pandas as pd import matplotlib.pyplot as plt import numpy as np y = np.random.rand(10,4) y[:,0]= np.arange(10) df = pd.DataFrame(y, columns=["X", "A", "B", "C"]) ax = df.plot(x="X", y="A", kind="bar") df.plot(x="X", y="B", kind="bar", ax=ax, color="C2") df.plot(x="X", y="C", kind="bar", ax=ax, color="C3") plt.show()Aunque la respuesta aceptada funciona bien, desde v0.21.0rc1 da una advertencia
UserWarning: Pandas no permite que se creen columnas a través de un nuevo nombre de atributo
En cambio, uno puede hacer
df[["X", "A", "B", "C"]].plot(x="X", kind="bar")