Устранить значения графика выше и ниже значения - PullRequest
2 голосов
/ 07 марта 2019

Я строю графики нескольких точек и хочу исключить все значения выше и ниже заданного диапазона.

Итак, я построил все свои точки как

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 - это просто некоторое пространство надстроек.Это дает мне график, который выглядит следующим образом: enter image description here

, именно то, что я хочу, но теперь я хочу удалить все точки выше и ниже красных пунктирных линий (которые являются уравнением +0,5 и уравнением -0,5), но я действительно понятия не имею, как это сделать.Советы?

1 Ответ

1 голос
/ 07 марта 2019

Вы можете использовать индексирование и создать маску, определяющую ваши граничные условия, поскольку ваш 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 = '--')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...