Trazado NumPy Linear Fit en Matplotlib Python
Este tutorial explica cómo ajustar una curva a los datos dados utilizando el método numpy.polyfit()
y mostrar la curva utilizando el paquete Matplotlib.
import numpy as np
import matplotlib.pyplot as plt
x = [1, 2, 3, 1.5, 4, 2.5, 6, 4, 3, 5.5, 5, 2]
y = [3, 4, 8, 4.5, 10, 5, 15, 9, 5, 16, 13, 3]
plt.scatter(x, y)
plt.title("Scatter Plot of the data")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
Resultado:
Muestra el gráfico de dispersión de los datos en los que hay que ajustar la curva. Podemos ver que no hay una relación lineal perfecta entre los valores X
y Y
, pero intentaremos hacer la mejor aproximación lineal a partir de los datos.
Trazar el ajuste lineal de los datos
import numpy as np
import matplotlib.pyplot as plt
x = [1, 2, 3, 1.5, 4, 2.5, 6, 4, 3, 5.5, 5, 2]
y = [3, 4, 8, 4.5, 10, 5, 15, 9, 5, 16, 13, 3]
plt.scatter(x, y, color="red")
plt.title("Scatter Plot of the data")
plt.xlabel("X")
plt.ylabel("Y")
linear_model = np.polyfit(x, y, 1)
linear_model_fn = np.poly1d(linear_model)
x_s = np.arange(0, 7)
plt.plot(x_s, linear_model_fn(x_s), color="green")
plt.show()
Resultado:
Aquí, intentamos aproximar los datos dados por la ecuación de la forma y=m*x+c
. El método polyfit()
estimará los parámetros m
y c
a partir de los datos, y el método poly1d()
hará una ecuación a partir de estos coeficientes. Luego graficamos la ecuación de la figura usando el método plot()
representado por la línea recta del color verde.
En el ejemplo, ajustamos una ecuación lineal a los datos, ya que tenemos 1
como tercer argumento en el método polyfit()
. También podemos experimentar con otros valores del parámetro para ajustar curvas de orden superior a los datos.
import numpy as np
import matplotlib.pyplot as plt
x = [1, 2, 3, 1.5, 4, 2.5, 6, 4, 3, 5.5, 5, 2]
y = [3, 4, 8, 4.5, 10, 5, 15, 9, 5, 16, 13, 3]
plt.scatter(x, y, color="red")
plt.title("Scatter Plot of the data")
plt.xlabel("X")
plt.ylabel("Y")
linear_model = np.polyfit(x, y, 2)
linear_model_fn = np.poly1d(linear_model)
x_s = np.arange(0, 7)
plt.plot(x_s, linear_model_fn(x_s), color="green")
plt.show()
Resultado:
De esta manera, podemos generar un gráfico cuadrático a los datos simplemente ajustando el tercer parámetro del método polyfit()
a 2 que ajusta la curva de segundo orden a los datos.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn