根据pandas dataframe

时间:2018-03-12 09:58:41

标签: pandas matplotlib

我的数据框看起来像这样。

raw_data = {'Enum': ['E330','E322','E124','E500'],'Count': [234, 122, 765, 433],
'Colors':['red','blue','green','yellow']}

additives_count = pd.DataFrame(raw_data)

我想绘制一个条形图,我使用下面的代码。

ax = additives_count.plot(kind='barh',colors=additives_count['Colors'])

唯一的问题是我无法使用Enum显示相应的颜色。我得到了我的条形图,但只有1种颜色。因此,例如,我的绘图应该将E330绘制为红色,将E322绘制为蓝色,将E124绘制为绿色,将E500绘制为黄色。我怎样才能做到这一点?

请注意,这只是我数据的一小部分。我总共绘制了30行,但我相信你会得到我想要实现的目标。任何帮助将不胜感激。

谢谢!

2 个答案:

答案 0 :(得分:4)

指定哪个列为x-axis,哪个列为y-axis

additives_count.plot(x='Enum', y='Count',kind='barh',color=additives_count['Colors'])

输出看起来像这样。 enter image description here

答案 1 :(得分:2)

在绘图调用中指定xy数据似乎可以解决问题:

ax = additives_count.plot(x="Enum",y="Count",kind='barh',color=additives_count['Colors'])

请注意,colors正在弃用,因此建议使用color。这将给出:

enter image description here