Python Pandas条形图-更改特定条形的颜色

时间:2020-02-05 13:12:11

标签: python pandas matplotlib bar-chart

我在csv中有一些数据。

只有一列,内容字符串包含足球得分,例如“ 0:0”,“ 1:2”等。

然后,我用df[0].value_counts().plot(kind='bar')建立组氨酸。

仅对具有“绘制”分数(0:0、1:1,...)的条改变颜色的最佳方法是什么?

我可以添加第二列,其中“ 1”代表绘制,“ 0”代表其他列,但不了解如何将其用作条形颜色。

我在这里尝试了另一个问题的解决方案

df[0].value_counts().plot(kind='bar', color=(df[1] == 1).map({True: 'orange', False: 'blue'}))但颜色错误

wrong coloring,期望橙色为“ 1:1”
示例数据框:

      0  1
0   2:0  0
1   2:3  0
2   1:1  1
3   1:3  0
4   2:0  0
5   3:4  0
6   1:2  0
7   0:1  0
8   2:3  0
9   0:1  0
10  1:1  1
11  2:1  0
12  0:1  0
13  1:2  0
14  0:3  0

1 个答案:

答案 0 :(得分:1)

使用numpy.where测试是否将Index.isin1列与传递给color参数的颜色数组相匹配:

a = df[0].value_counts()
colors = np.where(a.index.isin(df.loc[df[1] == 1, 0].unique()), 'orange', 'blue')
a.plot(kind='bar', color=colors)

g