如何在graph python中提取最大数?

如何在graph python中提取最大数?,python,Python,我用python制作了一个图形 x = [] y = [] plt.plot(x, y) plt.show() 如何提取最大点,如下图所示: 我想从y列表中提取第一个、最后一个和定义的点到一个新列表这就是你要找的吗 ymax = max(y) xpos = y.index(ymax) xmax = x[xpos] 很明显,我手头没有您的数据集,所以我不得不“徒手”使用类似的东西(由generate\u data()函数生成) 这是这样绘制的–您需要调整距离和突出度值以符合您的目的 听起来像

我用python制作了一个图形

x = []
y = []
plt.plot(x, y)
plt.show()
如何提取最大点,如下图所示:


我想从y列表中提取第一个、最后一个和定义的点到一个新列表

这就是你要找的吗

ymax = max(y)
xpos = y.index(ymax)
xmax = x[xpos]

很明显,我手头没有您的数据集,所以我不得不“徒手”使用类似的东西(由
generate\u data()
函数生成)

这是这样绘制的–您需要调整
距离
突出度
值以符合您的目的


听起来像是您需要的工具。在这个工具中,x等于x=ECG()[2000:4000]。但我想给它我的x和y。我该怎么做?OP的图像突出显示了多个峰值,而不是一个最大值。@AKX。是的,我需要它们。谢谢,我的朋友。你能告诉我如何将这些点的X和Y提取到一个单独的列表中吗?像这样:x=[10,12,18],y=[0.2,0.4,0.8],我如何将我的列表插入到这个算法中?你可以使用这个函数将你的x/y列表转换成一个“常规”函数,然后使用这个函数生成一个单一的
y
点列表,你可以使用这个方法。
import random

import matplotlib.pyplot as plt
import numpy as np
from scipy.signal import find_peaks


def generate_data(length):
    points = []
    for x in range(length):
        i = x / length
        p = 0
        p -= abs(i - .1)
        p += abs(i - .3) * 1.6
        p -= abs(i - .5) * 1.4
        p += abs(i - .6) * 2.7
        p -= abs(i - .7) * 3
        points.append(p + random.uniform(0, .02))
    # Normalize data to 0..1
    points = np.array(points)
    points -= points.min()
    points /= points.max()

    return points


data = generate_data(500)
peaks, _ = find_peaks(data, distance=15, prominence=.05)
plt.plot(data)
plt.vlines(peaks, 0, 1)
plt.show()