Python 绘图:所有颜色都大于不同颜色

Python 绘图:所有颜色都大于不同颜色,python,matplotlib,scipy,Python,Matplotlib,Scipy,在绘图中,如何将阈值以上的所有值用不同的颜色着色?像mean+std或mean+2*std以上的所有内容一样?使用a是正确的方法,但您也可以使用屏蔽数组在一行代码中完成一个简单的版本: 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, 10

在绘图中,如何将阈值以上的所有值用不同的颜色着色?像mean+std或mean+2*std以上的所有内容一样?

使用a是正确的方法,但您也可以使用屏蔽数组在一行代码中完成一个简单的版本:

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


此处需要遮罩阵列的原因是,否则会有一条线连接不同的线段,并且遮罩会导致这些点不被绘制。

使用您所指的绘图类型是什么?线(例如
ax.plot(…)
)、点(例如
ax.scatter(…)
ax.plot(…,ls='none')
)、图像或网格数据(例如
imshow
/
/
pcolor
),或其他东西?绘图的线颜色。我知道如何在全球范围内进行设置,但短片段如何?