gpt4 book ai didi

python - 如何更正确地近似点

转载 作者:行者123 更新时间:2023-12-03 08:40:42 26 4
gpt4 key购买 nike

我正在尝试近似我的数据,但我需要一条更平滑的线,我该如何实现它?

import matplotlib.pyplot as plt
from scipy.interpolate import interp1d
import numpy as np

m_x = [0.22, 0.29, 0.38, 0.52, 0.55, 0.67, 0.68, 0.74, 0.83, 1.05, 1.06, 1.19, 1.26, 1.32, 1.37, 1.38, 1.46, 1.51, 1.61, 1.62, 1.66, 1.87, 1.93, 2.01, 2.09, 2.24, 2.26, 2.3, 2.33, 2.41, 2.44, 2.51, 2.53, 2.58, 2.64, 2.65, 2.76, 3.01, 3.17, 3.21, 3.24, 3.3, 3.42, 3.51, 3.67, 3.72, 3.74, 3.83, 3.84, 3.86, 3.95, 4.01, 4.02, 4.13, 4.28, 4.36, 4.4]
m_y = [3.96, 4.21, 2.48, 4.77, 4.13, 4.74, 5.06, 4.73, 4.59, 4.79, 5.53, 6.14, 5.71, 5.96, 5.31, 5.38, 5.41, 4.79, 5.33, 5.86, 5.03, 5.35, 5.29, 7.41, 5.56, 5.48, 5.77, 5.52, 5.68, 5.76, 5.99, 5.61, 5.78, 5.79, 5.65, 5.57, 6.1, 5.87, 5.89, 5.75, 5.89, 6.1, 5.81, 6.05, 8.31, 5.84, 6.36, 5.21, 5.81, 7.88, 6.63, 6.39, 5.99, 5.86, 5.93, 6.29, 6.07]
x = np.array(m_x)
y = np.array(m_y)

plt.plot(x, y, 'ro', ms = 5)
plt.show()

spl = interp1d(x, y, fill_value = 'extrapolate')
xs = np.linspace(-3, 3, 1000)
plt.plot(xs, spl(xs), 'g', lw = 3)
plt.axis([0, 5, 2, 10])
plt.show()

行数据:

enter image description here


我需要:

enter image description here


程序制作:

enter image description here


UPD:除此之外,我需要访问结果曲线的所有值,并将其推断到y 轴的左侧 ,并向右到图片末尾


最佳答案

此外,如果您知道数据具有某种趋势(例如对数趋势),您可以将数据转换为一条线并找到该线的回归系数:

a = np.polyfit(np.log(x), y, 1)
y = a[0] * np.log(x) + a[1]

然后

plt.plot(x, y, 'g', lw = 3)

enter image description here

关于python - 如何更正确地近似点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62894803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com