条形图:如果值是正值还是负值,如何选择颜色

2024-01-29

我有一个带有正值和负值的 pandas 数据框,想将其绘制为条形图。

我想绘制正值“绿色”和负值“红色”(非常原始......哈哈)。

我不知道如何传递 if > 0 'green' else

data = pd.DataFrame([[-15], [10], [8], [-4.5]],
                    index=['a', 'b', 'c', 'd'],
                    columns=['values'])
data.plot(kind='barh')

我会创建一个虚拟列来判断观察值是否大于 0。

In [39]: data['positive'] = data['values'] > 0

In [40]: data
Out[40]: 
   values positive
a   -15.0    False
b    10.0     True
c     8.0     True
d    -4.5    False

[4 rows x 2 columns]

In [41]: data['values'].plot(kind='barh',
                             color=data.positive.map({True: 'g', False: 'r'}))

bar plot with positives green and negatives red

另外,您可能需要小心不要让列名称与 DataFrame 属性重叠。DataFrame.values给出 DataFrame 的底层 numpy 数组。名称重叠会阻止您使用df.<column name> syntax.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

条形图:如果值是正值还是负值,如何选择颜色 的相关文章