El *_*ude 3 python matplotlib scipy
在绘图中,如何用不同的颜色为高于阈值的所有值着色?就像上面的所有mean + std 或mean + 2*std 一样?
tom*_*m10 11
使用 aLineCollection
是正确的方法,但您也可以使用屏蔽数组在一行代码中完成一个简单的版本:
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()
Run Code Online (Sandbox Code Playgroud)
这里的作弊之处在于,它使用过滤后的数据绘制原始数据,因此有时可以显示基础曲线,具体取决于其渲染方式。我把这里的红线加粗了一点,但我不确定这是否有影响。优点是ma.masked_less(y, 1.1)
对于 的阈值,它基本上是一行1.1
。
这里需要屏蔽数组的原因是,否则就会有一条线连接不同的段,并且屏蔽会导致这些点无法被绘制。
归档时间: |
|
查看次数: |
3837 次 |
最近记录: |