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:
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:
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:
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.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn