使用pandas绘制数据框条形图,并按类别着色

17
我希望使用pandas为列中的不同分类绘制条形图并设置不同的颜色。
这是一个简单的例子:(索引是可变的)
df:
         value   group
variable               
a             10      1
b              9      1
c              8      1
d              7      2
f              6      2
g              5      3
h              4      3

我想制作一个分组着色的条形图。我也想指定颜色。在我的原始数据集中,有许多分组。

有人能帮我吗?

1个回答

40

只需向绘图函数传递一个颜色参数及颜色列表即可:

df['group'].plot(kind='bar', color=['r', 'g', 'b', 'r', 'g', 'b', 'r'])

如果你想将value作为条形图绘制,同时希望group决定条的颜色,请使用:

colors = {1: 'r', 2: 'b', 3: 'g'}
df['value'].plot(kind='bar', color=[colors[i] for i in df['group']])

你也可以使用类似以下的内容:

list(df['group'].map(colors))

不使用列表推导式。


1
当您有多个条形图,但并非所有条形图都具有相同数量的类别时,该如何处理?尽管不同图之间的类别相同。 - FaCoffee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接