为什么这个例子中的颜色在matplotlib中不起作用?

时间:2017-07-18 19:55:15

标签: python pandas matplotlib

为什么我没有看到负值的红色?

df = pd.DataFrame([1, -2, 3, -4])
df['positive'] = df[[0]]>0
df[[0]].plot(kind='bar', color=df.positive.map({True: 'g', False: 'r'}))

enter image description here

我期待负值为红色!

根据我们下面的讨论,这是最新版本的pandas 0.20.2中的一个错误。

1 个答案:

答案 0 :(得分:2)

这是由于@johnchase提到的bug

一个解决方法,直到它得到解决:

print(''.join(df.positive.map({True: 'g', False: 'r'}).values))    # 'grgr'
df[[0]].plot(kind='bar', color=''.join(df.positive.map({True: 'g', False: 'r'}).values))

输出

enter image description here