消除高于和低于某个值的绘图值

时间:2019-03-06 23:47:14

标签: python matplotlib plot

我正在绘制几个点,我想消除给定范围内上下的所有值。

所以我将所有要点标为

import numpy as np
import matplotlib.pylab as plt

我有两个数组:“幅值”和“颜色”,以及最适合的方程,因此我将其绘制为:

plt.scatter(magnitude,color)
plt.plot(x,equation)
plt.plot(x,equation +0.5, linestyle =  '--')
plt.plot(x,equation-0.5, linestyle = '--')

其中x只是一些linspace。 它给了我一个像这样的情节: enter image description here

这正是我想要的,但是现在我想删除红色虚线上方和下方的所有点(等式+0.5和等式-0.5),但是我真的不知道如何执行此操作。提示?

1 个答案:

答案 0 :(得分:1)

由于equation似乎是一个NumPy数组,因为您正在对其执行算术运算(+0.5),因此您可以利用索引并创建定义边界条件的掩码

y1 = equation - 0.5
y2 = equation + 0.5

mask = (color>y1) & (color<y2)

plt.scatter(magnitude[mask], color[mask])
plt.plot(x, equation)
plt.plot(x, y1, linestyle =  '--')
plt.plot(x, y2, linestyle = '--')