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

标签 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: '橙色', False: '蓝色'} )) 但着色错误

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

最佳答案

使用numpy.where用于测试是否将 1 列与 Index.isin 匹配对于传递给 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

关于Python Pandas 条形图 - 更改特定条形的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60076638/

相关文章:

javascript - 抓取 CSV 格式的网站数据

python - 在 Python : Is my method of doing so wrong? 中使用循环修改列表

python - Keras ValueError : No data provided for "add". 需要每个键的数据:['add'] 使用模型 API

python - 是否可以在实例初始化时向现有对象添加新方法?

python - Pandas :DataFrame.fillna 但仅来自同一天

python - 让 pandas.read_csv() 忽略 csv 文件开头的垃圾?

python - 使用至少一个匹配条件过滤组上的 DataFrame

python - 为什么 x 轴使用日期和 matplotlib 上 x 轴使用数字列表之间的绘图显示不同?

python - 用 matplotlib 绘图 : TypeError: float() argument must be a string or a number

python - 使用 pyplot 在 Python 中绘制带有嵌入式 if 语句的 lambda