Tracer une courbe linéaire bosselée dans le python Matplotlib

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

Diagramme de dispersion Matplotlib des données pour l’ajustement de la courbe

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 :

Tracer un ajustement linéaire aux données

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 :

Tracer un ajustement quadratique aux données

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.

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn