2017-07-18 97 views
2

为什么我没有看到任何红色这里负值?为什么这个示例中的颜色在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

我期待负值是红色的!

按照我们下面的讨论,这是大熊猫0.20.2最新版本的错误。

+3

你能告诉你所得到的输出和你期望的输出? – Ahmed

+0

@Ahmed更新的问题 –

+0

我有他们的红色 – tarashypka

回答

2

这是由于bug通过@johnchase提及。

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

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

相关问题