情节:所有颜色大于不同颜色

发布于 2021-01-29 15:03:42

在图中,如何用不同的颜色为高于阈值的所有值上色?像高于均值+标准或均值+ 2 * std的所有内容一样?

关注者
0
被浏览
47
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    使用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()
    

    这样做的弊端在于它会使用过滤后的数据绘制原始数据,因此有时基础曲线可能会显示出来,具体取决于渲染方式。我在这里把红线弄得有点粗,但是我不确定它是否有所作为。好处是,它基本上是一行,ma.masked_less(y, 1.1)阈值为1.1

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看