Traccia NumPy Linear Fit in Matplotlib Python
Questo tutorial spiega come adattare una curva ai dati forniti usando il metodo numpy.polyfit()
e visualizzare la curva usando il pacchetto 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()
Produzione:
Visualizza il grafico a dispersione dei dati su cui è necessario eseguire l’adattamento della curva. Possiamo vedere che non esiste una relazione lineare perfetta tra i valori X
e Y
, ma cercheremo di ottenere la migliore approssimazione lineare dai dati.
Traccia l’adattamento lineare ai dati
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()
Produzione:
Qui, proviamo ad approssimare i dati forniti dall’equazione della forma y=m*x+c
. Il metodo polyfit()
stimerà i parametri m
e c
dai dati, e il metodo poly1d()
creerà un’equazione da questi coefficienti. Quindi tracciamo l’equazione nella figura usando il metodo plot()
rappresentato dalla linea retta del colore verde.
Nell’esempio, adattiamo un’equazione lineare ai dati poiché abbiamo 1
come terzo argomento nel metodo polyfit()
. Possiamo anche sperimentare con altri valori del parametro per adattare curve di ordine superiore ai dati.
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()
Produzione:
In questo modo, possiamo generare un grafico quadratico ai dati semplicemente impostando il terzo parametro del metodo polyfit()
su 2 che adatta la curva del secondo ordine ai dati.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn