【问题标题】:plot colors by color values in pandas dataframe在熊猫数据框中按颜色值绘制颜色
【发布时间】:2018-03-12 09:58:41
【问题描述】:

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

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 显示相应的颜色。我得到了条形图,但只有一种颜色。例如,我的绘图应该将 E330 绘制为红色,E322 绘制为蓝色,E124 绘制为绿色,E500 绘制为黄色。我怎样才能做到这一点?

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

谢谢!

【问题讨论】:

  • 感谢编辑!根据我下面的评论,即使在指定 x 和 y 之后,我的条形图也仅以 1 种颜色绘制。我的版本是 matplotlib (2.1.0)、panda(0.20.3) 和 Py (3)
  • 我的版本是 matplotlib(2.0.2) 和 pandas(0.22.0) 和 python 3。尝试更新 pandas 版本。 @Zoozoo
  • 谢谢!已更新,现在可以使用! :)

标签: pandas matplotlib


【解决方案1】:

指定哪一列是x-axis,哪一列是y-axis

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

输出如下所示。

【讨论】:

    【解决方案2】:

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

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

    注意colors正在贬值,所以推荐使用color。这将给出:

    【讨论】:

    • 谢谢!我将您的代码完全复制并粘贴到一个新笔记本上,但奇怪的是,我的条形图只输出一种颜色,即红色(第一种)
    • 注意颜色语法,非常感谢!
    • @Zoozoo 尝试更新到最新版本的 Pandas
    • pandas 更新到 0.22,在我的 jupyter notebook 中重新导入了我的 pandas,但仍然无法正常工作。 :(
    • 好的,现在可以了。我需要完全关闭我的笔记本并重新启动。感谢您的帮助和投入。不敢相信不同版本的功能有何不同,需要提醒自己保持更新和新鲜! :)
    猜你喜欢
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-10
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    相关资源
    最近更新 更多