Traccia NumPy Linear Fit in Matplotlib Python

Suraj Joshi 22 gennaio 2022
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:

Grafico a dispersione Matplotlib dei dati per l’adattamento della curva

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:

Traccia un adattamento lineare ai dati

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:

Traccia un adattamento quadratico ai dati

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.

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn