Tracer une courbe linéaire bosselée dans le python Matplotlib
Ce tutoriel explique comment ajuster une courbe aux données données données en utilisant la méthode numpy.polyfit()
et afficher la courbe en utilisant le paquet 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()
Production :
Il affiche le diagramme de dispersion des données sur lesquelles il faut ajuster la courbe. Nous pouvons voir qu’il n’y a pas de relation linéaire parfaite entre les valeurs X
et Y
, mais nous allons essayer de faire la meilleure approximation linéaire à partir des données.
Tracer l’ajustement linéaire aux données
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()
Production :
Ici, nous essayons d’approximer les données données données par l’équation de la forme y=m*x+c
. La méthode polyfit()
estimera les paramètres m
et c
à partir des données, et la méthode poly1d()
fera une équation à partir de ces coefficients. Nous traçons ensuite l’équation dans la figure en utilisant la méthode plot()
représentée par la ligne droite de la couleur verte.
Dans l’exemple, nous ajustons une équation linéaire aux données car nous avons 1
comme troisième argument dans la méthode polyfit()
. Nous pouvons également expérimenter avec d’autres valeurs du paramètre pour ajuster des courbes d’ordre supérieur aux données.
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()
Production :
De cette façon, nous pouvons générer un tracé quadratique des données en fixant simplement à 2 le troisième paramètre de la méthode polyfit()
qui ajuste la courbe du second ordre aux données.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn