【问题标题】:How to overlay scatter plot on top of a line plot using matplotlib?如何使用 matplotlib 在折线图顶部叠加散点图?
【发布时间】:2018-06-12 03:05:02
【问题描述】:

所以我有一个线图,我想只在图中的一些点上添加标记(我已经检测到图中的峰值并想要标记它们)。当我在没有标记峰值的情况下绘图时,它可以正常工作,而当我单独绘制峰值时,它似乎可以正确地绘制它们,但是当我尝试在同一个图上绘制它们时,线图在大部分图表上消失并且似乎也许已经被压缩到情节的一边,如果这有任何意义吗? 这是我的代码,没有绘制峰值和结果图:

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

Plot without peaks marked

然后,当我添加应该显示峰值的代码时,峰值出现在与索引中存储的值相对应的 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')

Plot with peaks marked

我是否遗漏了一些明显的东西,或者这是一个有人有解决方案的故障?

【问题讨论】:

  • indices 是否将值或索引存储到 times

标签: python matplotlib plot scatter-plot


【解决方案1】:

假设indices 存储times 的索引,这应该是最后一行。

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

【讨论】:

    猜你喜欢
    • 2021-07-11
    • 2023-03-22
    • 2012-06-26
    • 1970-01-01
    • 2021-12-10
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    相关资源
    最近更新 更多