我使用以下代码绘制条形图:
import matplotlib.pyplot as pls
my_df.plot(x='my_timestampe', y='col_A', kind='bar')
plt.show()
情节很好。但是,我希望通过在列表中包含3列:'col_A','col_B'和'col_C'来改进图形。如下图所示:
我希望col_A
在x轴上方以蓝色显示,col_B
在x轴下方以红色显示,而col_C
在x轴上方以绿色显示。这是matplotlib中的可能吗?如何更改以绘制所有三列?谢谢!
答案 0 :(得分:61)
您可以通过向plot
的{{1}}参数提供列名列表,一次绘制多个列。
y
这将产生一个图形,其中条形图彼此相邻。
为了让它们重叠,您需要多次调用df.plot(x="X", y=["A", "B", "C"], kind="bar")
,并提供轴以绘制为图形的参数plot
。
ax
答案 1 :(得分:3)
虽然接受的答案很好,但是v0.21.0rc1它会发出警告
UserWarning:Pandas不允许通过新属性名称
创建列
相反,可以做
df[["X", "A", "B", "C"]].plot(x="X", kind="bar")