python – 为什么在这个例子中,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中的一个错误.

最佳答案
这是由于@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

转载注明原文:python – 为什么在这个例子中,matplotlib中的颜色不起作用? - 代码日志