如何突出大熊猫情节中的区域?

时间:2018-02-16 20:34:18

标签: pandas matplotlib

我正在比较和绘制两个数组,我想绘制它们,并以某种颜色突出显示数组a小于数组b的区域。这是我尝试使用的代码,其中ca小于b的地方:

import pandas
import numpy

numpy.random.seed(10)

df = pandas.DataFrame(numpy.random.randn(10, 2), columns=['a', 'b'])

df['c'] = df['a'] < df['b']

,结果DataFrame为:

          a         b      c
0  1.331587  0.715279  False
1 -1.545400 -0.008384   True
2  0.621336 -0.720086  False
3  0.265512  0.108549  False
4  0.004291 -0.174600  False
5  0.433026  1.203037   True
6 -0.965066  1.028274   True
7  0.228630  0.445138   True
8 -1.136602  0.135137   True
9  1.484537 -1.079805  False

这是我在'可靠的MS Paint(RIP)中制作的一个漂亮的例子,它展示了我想做的事情:

enter image description here

1 个答案:

答案 0 :(得分:5)

您可以使用axvspan尝试这样的操作。您可以避免创建专用的c列。

ax = df.plot()

def highlight(indices,ax):
    i=0
    while i<len(indices):
        ax.axvspan(indices[i]-0.5, indices[i]+0.5, facecolor='pink', edgecolor='none', alpha=.2)
        i+=1

highlight(df[df['a'] < df['b']].index, ax)

enter image description here