Как наложить точечный график поверх линейного графика, используя matplotlib? - PullRequest
0 голосов
/ 12 июня 2018

Итак, у меня есть линейный график, и я хочу добавить маркеры только на некоторые точки на графике (я обнаружил пики на графике и хочу отметить их).Когда я строю график без обозначенных пиков, он работает так, как должен, и когда я рисую одни только пики, кажется, что они отображаются правильно, но когда я пытаюсь нанести их на один и тот же график, линейный график исчезает на большей части графика и кажется,чтобы, возможно, сжаться в сторону сюжета, если это имеет какой-то смысл?Вот мой код без построенных пиков и полученного графика:

 def plotPeaks(file):
      indices, powerSums, times=detectPeaks(file)
      plt.figure(figsize=(100, 10))
      plt.plot(times, powerSums)

График без пиков, помеченных

Затем, когда я добавляю код, который должен показывать пики,которые происходят при значениях x, соответствующих значениям, хранящимся в индексах, я получаю это:

def plotPeaks(file):
  indices, powerSums, times=detectPeaks(file)
  plt.figure(figsize=(100, 10))
  plt.plot(times, powerSums)
  for i in indices:
      plt.scatter(i, powerSums[i], marker='o')

График с отмеченными пиками

Я что-то упускаю из виду,или это глюк, для которого у кого-то есть решение?

1 Ответ

0 голосов
/ 12 июня 2018

Если indices хранит индексы times, это должна быть последняя строка.

  plt.scatter(times[i], powerSums[i], marker='o')
...