熊猫/ matplotlib条形图的颜色定义列
我想在python中制作条形图,并通过数据框列来制作彩条,这在R ggplot2中非常容易,所以我真的不明白为什么它在matplotlib/pandas中是如此的辛苦,我想了解如何做到这一点,并希望逻辑,因为我认为它毕竟不是很难熊猫/ matplotlib条形图的颜色定义列
这是我想要的一个例子。我在ggplot中做过的 - 我想要的只是使用数据框中的属性来定义颜色,属性可以是颜色字符串,即'k','r'或数据的一个特征,如男性/女性等。
这是工作以产生所述杆
import matplotlib.pyplot as plt
import pandas as pd
data = pd.DataFrame({'name' : ['a','b','c'],'value' : [1,2,3],
'c' : ['b','r','b']})
data.plot('name','value',kind='bar')
的代码我尝试一个例子,但我想通过柱“c”的
但是当我添加颜色='C定义的颜色'那么它不起作用
data.plot('name','value',color='c',kind='bar',color='c')
我尝试使用plot.scatter以及和它没有工作,要么
----更新
我做了一些更多的工作,这工作或多或少,我还没有想出如何正确对齐标签,我仍然喜欢为什么我必须有一个数字x轴,当它是真正的分类时(再次ggplot2自己处理这个) - 但至少这可以在代码中完成
fig, ax = plt.subplots()
ax.bar(range(len(data)),data['value'],width=.5,color=data['c'])
ax.set_xticks(range(len(data)))
ax.set_xticklabels((data['name']))
一如既往感谢
试试这个:
data.plot('name','value',color=['r', 'g', 'b'],kind='bar')
你可以给颜色的任何组合作为颜色参数的列表。如果条数多于颜色数,那么颜色就会回收。
我也强烈推荐的优秀brewer2mpl库。它提供了美观的颜色选择。该代码看起来是这样的:导致
import brewer2mpl
bmap = brewer2mpl.get_map('Set2','qualitative',3,reverse=True)
colors = bmap.mpl_colors
data.plot('name','value',color=colors,kind='bar')
在:
你可以从这里得到brewer2mpl:https://pypi.python.org/pypi/brewer2mpl/1.4
感谢您的答案,并感谢啤酒技巧。然而,这个解决方案不起作用,因为我没有使用3个数据点(这只是一个llustration),但有更多的数据,因此我使用数据框中的代码来定义它们 - 这个想法实际上是让大多数条形体为单色并收取不同颜色的费用(甚至可能是一个)。有没有办法根据数据驱动颜色?在R例如,所有人必须传递给ggplot是填充= desired_column,它这样做 - 我会假设python会有类似的功能 – user1617979 2014-11-07 12:47:20
感谢评论!并为您的问题更新! – user308827 2014-11-07 15:11:15
有没有什么方法可以使用brewer选择你想要使用的特定颜色? – 2017-07-05 14:50:24
您可以发布一个例子人物?非常难以知道你想要什么W/O图片。 – 2014-11-07 17:15:08