1
resposta

[Projeto] Projeto do curso até o terceiro desafio

Para a realização do terceiro desafio pensei em criar uma função que calculasse os coeficientes, logo o fiz assim :

import numpy as np
import matplotlib.pyplot as plt
url = 'https://raw.githubusercontent.com/allanspadini/numpy/dados/citrus.csv'
array = np.loadtxt(url,delimiter = ',',usecols = np.arange(1,6,1),skiprows= 1)
array
# Definir a coluna 0 em uma variável chamada Diametro
# Definir a coluna 1 em uma variável chamada Peso
# Laranja é de 0 a 4999 e toranja 5000 até o ultimo

diametro  = array[:,0]
peso = array[:,1]


# Criar arrays específicos para laranja e toranja
laranja_diametro = diametro[0:5000,]
laranja_peso = peso[0:5000,]
toranja_diametro = diametro[5000:,]
toranja_peso = peso[5000:,]

# Matplotlib para gerar gráfico
plt.plot(laranja_diametro,laranja_peso)
plt.plot(toranja_diametro,toranja_peso)
plt.show()
# Achar coeficiente linear e coeficente angular para toranjas e para laranjas

def coeficiente_angular(diametro,peso):
    Y = diametro
    X = peso
    n = np.size(diametro)
    a = (n * np.sum(X * Y) - np.sum(X) * np.sum(Y)) / (n * np.sum(X**2) - np.sum(X)**2)
    return a

def coeficiente_linear(diametro,peso):
    Y = diametro
    X = peso
    n = np.size(diametro)
    a = coeficiente_angular(Y,X)
    b = np.mean(Y) - a *np.mean(X)
    return b

coeficiente_angular_toranjas = coeficiente_angular(toranja_diametro,toranja_peso)
coeficiente_linear_toranjas = coeficiente_linear(toranja_diametro, toranja_peso)
coeficiente_angular_laranjas = coeficiente_angular(laranja_diametro,laranja_peso)
coeficiente_linear_laranjas = coeficiente_linear(laranja_diametro,laranja_peso)

y_laranja = coeficiente_angular_laranjas * laranja_peso + coeficiente_linear_laranjas
y_toranja = coeficiente_angular_toranjas * toranja_peso + coeficiente_linear_toranjas

plt.plot(laranja_peso,laranja_diametro)
plt.plot(laranja_peso, y_laranja)

plt.plot(toranja_peso, toranja_diametro)
plt.plot(toranja_peso, y_toranja)

plt.xlabel('peso')
plt.ylabel('diametro')

Mas não consegui gerar os gráficos separados de laranja e toranja, bem como acho que a visualização ficou confusa

1 resposta

Oi, Julio! Tudo certo?

Você pode reorganizar sua visualização usando o código abaixo para gerar os gráficos de forma separada e comparativa:

# Seu código anterior omitido

plt.figure(figsize=(12, 6))

plt.subplot(1, 2, 1)
plt.scatter(laranja_peso, laranja_diametro, label='Laranja', color='orange')
plt.plot(laranja_peso, y_laranja, color='red', label='Ajuste Laranja')
plt.xlabel('Peso')
plt.ylabel('Diâmetro')
plt.title('Laranjas')
plt.legend()

plt.subplot(1, 2, 2)
plt.scatter(toranja_peso, toranja_diametro, label='Toranja', color='pink')
plt.plot(toranja_peso, y_toranja, color='purple', label='Ajuste Toranja')
plt.xlabel('Peso')
plt.ylabel('Diâmetro')
plt.title('Toranja')
plt.legend()

plt.tight_layout()
plt.show()

Ajustei o gráfico com plt.subplot para separar laranjas e toranjas em painéis diferentes, facilitando a leitura.

Além disso, usei o plt.scatter para destacar os pontos reais dos dados e plt.plot para desenhar a reta de regressão linear de cada grupo.

Esse tipo de visualização torna a comparação mais clara e melhora bastante a apresentação final.

Resultado:

Gráfico comparativo entre Laranjas e Toranjas, com dois subgráficos lado a lado.
À esquerda, o gráfico das Laranjas mostra pontos laranja representando a relação entre o peso (eixo x) e o diâmetro (eixo y), com uma linha vermelha representando o ajuste de regressão linear.
À direita, o gráfico das Toranjas exibe pontos rosa claros com uma linha de ajuste roxa, também indicando uma regressão entre peso e diâmetro.
Ambos os gráficos possuem legendas, títulos ("Laranjas" e "Toranjas") e apresentam uma relação linear positiva entre as variáveis.

Conte com o apoio do Fórum na sua jornada. Fico à disposição.

Abraços e bons estudos!

  Caso este post tenha lhe ajudado, por favor, marcar como solucionado