matplotlib:在条形图上绘制多列pandas数据框

时间:2017-02-09 04:49:04

标签: python python-3.x pandas matplotlib bar-chart

我使用以下代码绘制条形图:

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'来改进图形。如下图所示:

enter image description here

我希望col_A在x轴上方以蓝色显示,col_B在x轴下方以红色显示,而col_C在x轴上方以绿色显示。这是matplotlib中的可能吗?如何更改以绘制所有三列?谢谢!

2 个答案:

答案 0 :(得分:61)

您可以通过向plot的{​​{1}}参数提供列名列表,一次绘制多个列。

y

enter image description here

这将产生一个图形,其中条形图彼此相邻。

为了让它们重叠,您需要多次调用df.plot(x="X", y=["A", "B", "C"], kind="bar") ,并提供轴以绘制为图形的参数plot

ax

enter image description here

答案 1 :(得分:3)

虽然接受的答案很好,但是v0.21.0rc1它会发出警告

  

UserWarning:Pandas不允许通过新属性名称

创建列

相反,可以做

df[["X", "A", "B", "C"]].plot(x="X", kind="bar")