python - 剧情: color all larger than different color

标签 python matplotlib scipy

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

最佳答案

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

enter image description here

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

这里的作弊之处在于,它使用过滤后的数据绘制原始数据,因此有时可以显示基础曲线,具体取决于其渲染方式。我把这里的红线加粗了一点,但我不确定这是否有影响。优点是对于 1.1 的阈值,它基本上是一行 ma.masked_less(y, 1.1)

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

关于python - 剧情: color all larger than different color,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27951521/

相关文章:

python - django [Errno 13] 权限被拒绝 : '/var/www/html/sp-django-master/static/CACHE'

python - 如何在networkx中使用python随机排列图的节点?

python - 在 CDH 5.3.0 上安装 pydoop 1.0.0-rc1

python - 如何绘制条件为 (r < 1.5*rs) 的数组?

python - 如何在不更改 matplotlib 默认值的情况下使用 seaborn?

python - 一个好的 matplotlib 教程(从初学者到中级)?

python - 层次聚类树状图中的节点索引

python - PySide 如何判断按钮是否已被单击?

python - 如何使用 scipy 获得非平滑的 2D 样条插值

python - 如何在 matplotlib 中使用日期时间索引增加 xticks?