我在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
答案 0 :(得分:1)
使用numpy.where
测试是否将Index.isin
的1
列与传递给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)