擅长:python、mysql、java
<p>我将为观察值是否大于0创建一个虚拟列。</p>
<pre><code>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'}))
</code></pre>
<h2><a href="https://i.stack.imgur.com/bWLdU.png" rel="noreferrer"><img src="https://i.stack.imgur.com/bWLdU.png" alt="bar plot with positives green and negatives red"/></a></h2>
<p>另外,您可能需要注意不要让列名与DataFrame属性重叠。<code>DataFrame.values</code>为数据帧提供底层numpy数组。有重叠的名称会阻止您使用<code>df.<column name></code>语法。</p>