Отображение значений с помощью фильтра - Matplotlib не поддерживает генераторы в качестве входных данных - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть df со значениями от 0 до 20000. Я хочу применить фильтр, чтобы я мог отображать только те значения ниже 3000. Вот как я это пробовал.

def f(x):
  if x > 3000:
    return False
  else:
    return True

y_3000 = filter(f, y1)

fig, ax = plt.subplots(nrows =2, ncols=1)

ax.set_title('Cell 13', fontsize= 18)
ax.plot(x1, y_3000, label = 'Values', color = 'green')   
plt.show()

При этом я сталкиваюсь с таким сообщением: «matplotlib не поддерживает генераторы в качестве входных данных».

Как я могу сделать фильтр для отображения только нижних значений, которые я хочу?

1 Ответ

1 голос
/ 11 февраля 2020

Это легко сделать с помощью numpy. Вам просто нужно преобразовать значения x, y в массив numpy, а затем выполнить фильтрацию по y[y < 3000] для y и x[y <= 3000] для x. Вот минимальный пример того, как построить значения y <= 50:

import numpy as np
import matplotlib.pyplot as plt


x = np.arange(0, 100)
y = np.arange(0, 100)

plt.plot(x[y <= 50], y[y <= 50])

img

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...