O exercício das laranjas e toranjas pede para plotar 2 gráficos. Criei uma função que é chamada 2 vezes. Isso organizou melhor o código.
def grafico(X,Y):
'''
Cálculo dos coeficientes angular e linear da reta,
Usando a fórmula de mínimos quadrados.
Parâmetros:
X: valores do eixo x da reta
Y: valores do eixo y da reta
n: número de elementos
a: coeficiente angular
b: coeficiente linear
x: valores do eixo x da linha
y: valores do eixo y da linha
'''
n = np.size(Y)
a = (n * np.sum(X*Y) - np.sum(X) * np.sum(Y)) / (n * np.sum(X**2) - np.sum(X)**2)
b = np.mean(Y) - a * np.mean(X)
x = X
y = a * x + b
np.linalg.norm(Y - y)
plt.title(cabecalho)
plt.plot(X, Y) # Reta
plt.plot(x, y) # Linha
A função é chamada 2 vezes:
cabecalho = 'Oranges'
X = citrus[:,0][:4999] # Diâmetros
Y = citrus[:,1][:4999] # Pesos
grafico(X,Y)
E:
cabecalho = 'Grapefruits'
X = citrus[:,0][5000:] # Diâmetros
Y = citrus[:,1][5000:] # Pesos
grafico(X,Y)