情节:颜色都比不同的颜色大

Plot: color all larger than different color

在绘图中,如何用不同颜色为高于阈值的所有值着色?像上面的所有东西一样 mean + std 或 mean + 2*std ?

使用 LineCollection 是正确的方法,但您也可以使用掩码数组在一行代码中做一个简单的版本:

import numpy as np
import numpy.ma as ma
import matplotlib.pyplot as plt

# make a weird continuous function
r, t = np.random.random((100,)), np.arange(0, 100, .01)    
y = sum(r[3*i+0]*np.sin(r[3*i+1]*t + 10*r[3*+2]) for i in range(10))

# generate the masked array
mask = ma.masked_less(y, 1.1)

plt.plot(t, y, 'k', linewidth=3)
plt.plot(t, mask, 'r', linewidth=3.2)
plt.show()

这里的作弊是它用过滤后的数据绘制原始数据,因此有时可以显示基础曲线,具体取决于它的呈现方式。我把这里的红线画粗了一点,但我不确定它是否有所作为。优点是它基本上是一行,ma.masked_less(y, 1.1),阈值为 1.1

这里需要屏蔽数组的原因是,否则会有一条线连接不同的线段,而屏蔽会导致这些点无法绘制。