Estou a utilizar o seguinte código para traçar um gráfico de barras:
import matplotlib.pyplot as pls
my_df.plot(x='my_timestampe', y='col_A', kind='bar')
plt.show()
A parcela funciona bem. Contudo, quero melhorar o gráfico tendo 3 colunas: 'col_A', 'col_B', e 'col_C' tudo na parcela. Como no exemplo da figura abaixo:
Gostaria que o col_A
fosse exibido em azul acima do eixo x, col_B
em vermelho abaixo do eixo x, e col_C
em verde acima do eixo x. Isto é algo possível em matplotlib? Como posso fazer alterações para traçar todas as três colunas? Obrigado!
Pode traçar várias colunas ao mesmo tempo, fornecendo uma lista de nomes de colunas para o argumento plot
's y
.
df.plot(x="X", y=["A", "B", "C"], kind="bar")
Isto irá produzir um gráfico onde as barras estão sentadas uma ao lado da outra.
Para que se sobreponham, seria necessário chamar várias vezes o "eixo", e fornecer os eixos para traçar como argumento "eixo" para a 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()
Embora a resposta aceite funcione bem, uma vez que v0.21.0rc1 dá um aviso
Aviso ao Utilizador: Pandas não'não permite a criação de colunas através de um novo nome de atributo
Em vez disso, pode-se fazer
df[["X", "A", "B", "C"]].plot(x="X", kind="bar")