【发布时间】:2018-01-30 18:21:00
【问题描述】:
我有许多数据点,我使用 Scipy curve_fit 来拟合这个数据集的曲线。我现在想绘制拟合 数据点范围,但我不知道该怎么做。
这是一个基于指数拟合的简单示例:
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
def exponential_fit(x, a, b, c):
return a*np.exp(-b*x) + c
x = np.array([0, 1, 2, 3, 4, 5])
y = np.array([30, 50, 80, 160, 300, 580])
fitting_parameters, covariance = curve_fit(exponential_fit, x, y)
a, b, c = fitting_parameters
plt.plot(x, y, 'o', label='data')
plt.plot(x, exponential_fit(x, *fitting_parameters), '-', label='Fit')
plt.axis([0, 8, 0, 2000])
plt.legend()
plt.show()
这将返回以下图:
现在如何扩展拟合的(橙色)曲线,使其上升到 x = 8?请注意,我不想创建额外的数据点,我只想扩大拟合曲线的范围。
提前非常感谢。
【问题讨论】:
标签: python matplotlib scipy curve-fitting