Scipy curve_fit: ¿cómo trazar la curva ajustada más allá de los puntos de datos?
Tengo varios puntos de datos y utilicé Scipycurve_fit
para ajustar una curva a este conjunto de datos. Ahora me gustaría trazar el ajustemás allá el rango de puntos de datos y no puedo averiguar cómo hacerlo.
Aquí hay un ejemplo simple basado en un ajuste exponencial:
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()
Esto devuelve la siguiente trama:
Ahora, ¿cómo puedo extender la curva ajustada (naranja) para que suba hasta x = 8? Tenga en cuenta que no quiero crear puntos de datos adicionales, solo quiero expandir el rango de la curva ajustada.
Muchas gracias de antemano.