python - torta - matplotlib: traza columnas múltiples del marco de datos de pandas en el gráfico de barras
python graficos web (2)
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'', todo en la gráfica. Como en la siguiente figura de ejemplo:
Me gustaría que col_A
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!
Aunque la respuesta aceptada funciona bien, ya que v0.21.0rc1 da una advertencia
Advertencia para el usuario: las pandas no permiten que se creen columnas a través de un nuevo nombre de atributo
En su lugar, uno puede hacer
df[["X", "A", "B", "C"]].plot(x="X", kind="bar")
Puede trazar varias columnas a la vez proporcionando una lista de nombres de columnas al plot
del plot
.
df.plot(x="X", y=["A", "B", "C"], kind="bar")
Esto producirá un gráfico donde las barras están sentadas una al lado de la otra.
Para que se superpongan, debe llamar a plot
varias veces y proporcionar los ejes para trazar como argumento ax
a 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()