Python:如何在图形中获得更平滑的起点?

Python:如何在图形中获得更平滑的起点?,python,pandas,numpy,matplotlib,Python,Pandas,Numpy,Matplotlib,我想要得到的是一个点,(x,y),在这个点上,对于给定的x和y值,y值变得更平滑 比如说, x = range(10) y = [0.3, 0.37, 0.41, 0.52, 0.64, 0.68, 0.71, 0.72, 0.73, 0.74] plt.plot(x, y) 我想得到图开始稳定的红色圆圈点(或接近点) 我该怎么做 更准确地说,您要寻找的是斜率或一阶差,为了了解曲线开始平滑的位置,您可以计算一阶差/斜率,并找出斜率低于某个阈值的第一个指数: import matplotlib

我想要得到的是一个点,
(x,y)
,在这个点上,对于给定的x和y值,y值变得更平滑

比如说,

x = range(10)
y = [0.3, 0.37, 0.41, 0.52, 0.64, 0.68, 0.71, 0.72, 0.73, 0.74]
plt.plot(x, y)

我想得到图开始稳定的红色圆圈点(或接近点)

我该怎么做


更准确地说,您要寻找的是斜率或一阶差,为了了解曲线开始平滑的位置,您可以计算一阶差/斜率,并找出斜率低于某个阈值的第一个指数:

import matplotlib.pyplot as plt
import numpy as np

x = np.array(range(10))
y = np.array([0.3, 0.37, 0.41, 0.52, 0.64, 0.68, 0.71, 0.72, 0.73, 0.74])

slopes = np.diff(y) / np.diff(x)
idx = np.argmax(slopes < 0.02)  # find out the first index where slope is below a threshold

fig, ax = plt.subplots()

ax.plot(x, y)
ax.scatter(x[idx], y[idx], s=200, facecolors='none', edgecolors='r')
导入matplotlib.pyplot作为plt
将numpy作为np导入
x=np.数组(范围(10))
y=np.数组([0.3,0.37,0.41,0.52,0.64,0.68,0.71,0.72,0.73,0.74])
斜率=np.diff(y)/np.diff(x)
idx=np.argmax(斜率<0.02)#找出斜率低于阈值的第一个指数
图,ax=plt.子批次()
轴图(x,y)
最大散射(x[idx],y[idx],s=200,面颜色='无',边颜色='r')

如何定义“平滑”或“稳定”?@chrisz y值停止变化的点!它不一定是一个精确的点,而是一个接近的点。不是为了对抗,而是定义“很多”,25%…3%…很棒的解决方案!