我正在绘制几个点,我想消除给定范围内上下的所有值。
所以我将所有要点标为
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。 它给了我一个像这样的情节:
这正是我想要的,但是现在我想删除红色虚线上方和下方的所有点(等式+0.5和等式-0.5),但是我真的不知道如何执行此操作。提示?
答案 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 = '--')