Plotar NumPy Linear Fit em Matplotlib Python

Suraj Joshi 15 fevereiro 2024 Matplotlib
Plotar NumPy Linear Fit em Matplotlib Python

Este tutorial explica como ajustar uma curva aos dados fornecidos utilizando o método numpy.polyfit() e exibir a curva utilizando o pacote 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:

Matplotlib Scatter Plot de dados para ajuste da curva

Apresenta o gráfico de dispersão dos dados em que é necessário fazer o ajuste da curva. Podemos ver que não existe uma relação linear perfeita entre os valores X e Y, mas tentaremos fazer a melhor aproximação linear a partir dos dados.

Traçar o gráfico de ajuste linear aos dados

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:

Traçar um ajuste linear aos dados

Aqui, tentamos aproximar os dados fornecidos pela equação da forma y=m*x+c. O método polyfit() estimará os parâmetros m e c a partir dos dados, e o método poly1d() fará uma equação a partir destes coeficientes. Traçamos então a equação na figura utilizando o método plot(), representado pela linha recta da cor verde.

No exemplo, encaixamos uma equação linear nos dados uma vez que temos 1 como terceiro argumento no método polyfit(). Podemos também experimentar outros valores do parâmetro para ajustar curvas de ordem superior aos dados.

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:

Traçar um ajuste quadrático para os dados

Desta forma, podemos gerar um gráfico quadrático para os dados, simplesmente definindo o terceiro parâmetro do método polyfit() para 2 que se enquadra na curva de segunda ordem para os dados.

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn