J'utilise le code suivant pour tracer un graphique à barres:
import matplotlib.pyplot as pls
my_df.plot(x='my_timestampe', y='col_A', kind='bar')
plt.show()
L'intrigue fonctionne bien. Cependant, je souhaite améliorer le graphique en ayant 3 colonnes: 'col_A', 'col_B' et 'col_C' sur le graphique. Comme dans l'exemple ci-dessous:
Je voudrais que le col_A
soit affiché en bleu au-dessus de l'axe des x, col_B
en rouge sous l'axe des x et col_C
en vert au-dessus de l'axe des x. Est-ce quelque chose de possible dans matplotlib? Comment puis-je apporter des modifications pour tracer les trois colonnes? Merci!
Vous pouvez tracer plusieurs colonnes à la fois en fournissant une liste de noms de colonnes à l'argument plot
'y
.
df.plot(x="X", y=["A", "B", "C"], kind="bar")
Cela produira un graphique où les barres sont assises les unes à côté des autres.
Pour les faire se chevaucher, vous devrez appeler plot
plusieurs fois et fournir les axes à tracer en tant qu'argument ax
au tracé.
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()
Bien que la réponse acceptée fonctionne correctement, puisque v0.21.0rc1 , un avertissement est émis.
UserWarning: Pandas n'autorise pas la création de colonnes via un nouveau nom d'attribut
Au lieu de cela, on peut faire
df[["X", "A", "B", "C"]].plot(x="X", kind="bar")