Python 绘图:所有颜色都大于不同颜色
在绘图中,如何将阈值以上的所有值用不同的颜色着色?像mean+std或mean+2*std以上的所有内容一样?使用a是正确的方法,但您也可以使用屏蔽数组在一行代码中完成一个简单的版本: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
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
),或其他东西?绘图的线颜色。我知道如何在全球范围内进行设置,但短片段如何?