Matplotlib - выделять точки из уже построенного графика, используя только Y-координату - PullRequest
0 голосов
/ 29 января 2019

У меня есть некоторые данные о запасах, и я нанес на график данные index = x-axis, price = y-axis, и теперь после расчета я нашел массив цен, то есть подмассив цен.Я хочу выделить точки в массиве на графике

Я пробовал markvery() документация , но не могу понять, как это работает.Вот мой код

from matplotlib
import pyplot as plt


x =[ 1,2,3,4,5,6,7] # array to be plotted
y=[100,111,112,111,112,113,114] # array to be plotted

subArray = [111,114] # array to be highlighted
plt.plot(x,y)
plt.show()

Любая помощь будет оценена

1 Ответ

0 голосов
/ 29 января 2019

Ваш subArray содержит две точки, которые встречаются более одного раза в вашем y.Итак, сначала вы можете получить индексы ваших элементов subArray от y, а затем снова построить их отдельно, чтобы выделить их.Как указывало @ ImportanceOfBeingErnest , для этого нет встроенного общего подхода.

При этом все становится проще, если вы конвертируете в массив NumPy.Ниже приводится один из способов найти индексы среди перечисленных здесь

import numpy as np

x =np.array([ 1,2,3,4,5,6,7]) # array to be plotted
y=np.array([100,111,112,111,112,113,114]) # array to be plotted

subArray = [111,114] 
ids = np.nonzero(np.in1d(y, subArray))[0]

plt.plot(x,y)
plt.plot(x[ids], y[ids], 'bo')

enter image description here

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