use*_*518 0 python matplotlib curve-fitting
我试图将sin函数绘制到数据集.我使用scipy.optimize在线发现了一个教程,但即使我完全复制了代码,它似乎也无法工作.
在顶部:
def func(x, a, b, c, d):
return a * np.sin(b * (x + c)) + d
Run Code Online (Sandbox Code Playgroud)
在末尾:
scipy.optimize.curve_fit(func, clean_time, clean_rate)
pylab.show()
Run Code Online (Sandbox Code Playgroud)
输出窗口上没有行.
如果有人想要屏幕或全部代码,请随时在下面发表评论.
谢谢!
当然它不会绘制任何东西,curve_fit也不会绘制.
在文档中,返回值curve_fit是具有估计参数的数组和具有估计协方差矩阵的2d数组.您必须自己使用估计参数绘制拟合函数.
我也建议适合a*sin(bx +c) +d,然后b和c不相关.
这工作:
import matplotlib.pyplot as plt
import numpy as np
from numpy.random import normal
from scipy.optimize import curve_fit
x_data = np.linspace(0, 2*np.pi, 30)
y_data = np.sin(x_data) + normal(0, 0.2, 30)
def func(x, a, b, c, d):
return a * np.sin(b*x + c) + d
parameter, covariance_matrix = curve_fit(func, x_data, y_data)
x = np.linspace(min(x_data), max(x_data), 1000)
plt.plot(x_data, y_data, 'rx', label='data')
plt.plot(x, func(x, *parameter), 'b-', label='fit') # the star is to unpack the parameter array
plt.show()
Run Code Online (Sandbox Code Playgroud)
这是结果:

| 归档时间: |
|
| 查看次数: |
7583 次 |
| 最近记录: |