Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

plt.plot dados de imigração

Na sintaxe do plot vista em aula

plt.figure(figsize=(8,4))
plt.plot(dados_brasil['ano'], dados_brasil['imigrantes'])  ## valores de x , y do grafico
plt.title('Imigração do Brasil para o Canadá')
plt.xlabel('Anos')
plt.ylabel('Numero imigrantes')
plt.xticks(['1980', '1985', '1990', '1995', '2000', '2005', '2010'])
plt.show()

Na segunda linha, a sintaxe pede os valores para o eixo x e os valores para o eixo y. São informados os anos e a quantidade de imigrantes.

Na solução do desafio:

plt.plot(df_comparacao['Brasil'],label = 'Brasil')                   ## valores apenas de x... 
plt.plot(df_comparacao['Argentina'],label ='Argentina')    ## valores apenas de x... 
plt.title('Imigração do Brasil e Argentina para o Canadá')
plt.xlabel('Ano')
plt.ylabel('Número de imigrantes')
plt.xticks(['1980', '1985', '1990', '1995', '2000', '2005', '2010'])
plt.legend()
plt.show()

Na primeira e segunda linhas, são passados apenas os valores de x:

df_comparacao['Brasil']
df_comparacao['Argentina']

O segundo argumento é "label". Cadê os valores de y?? os anos do dataframe ??? E pior, a coluna pais do dataframe esta com os anos...

3 respostas
solução!

Olá, Ceilton, tudo bem?

No primeiro exemplo, você está criando um gráfico de linha simples com os dados de imigração do Brasil para o Canadá. Onde, você especifica explicitamente tanto os valores do eixo x (dados_brasil['ano']) quanto os valores do eixo y (dados_brasil['imigrantes']):

plt.plot(dados_brasil['ano'], dados_brasil['imigrantes'])

No segundo exemplo, a ideia é comparar os dados de imigração de dois países (Brasil e Argentina) em um único gráfico, por isso usamos duas vezes o plt.plot. A diferença aqui é que o DataFrame df_comparacao está estruturado de forma diferente, onde os anos são usados como índices. Isso significa que os valores do eixo x (anos) são implicitamente considerados como o índice do DataFrame, e os valores do eixo y são as colunas correspondentes aos países. É como se tivéssemos feito:

plt.plot(df_comparacao.index, df_comparacao['Brasil'], label='Brasil')
plt.plot(df_comparacao.index, df_comparacao['Argentina'], label='Argentina')

Onde, df_comparacao.index fornece os anos (eixo x) e df_comparacao['Brasil'] e df_comparacao['Argentina'] fornecem os valores de imigração (eixo y) para cada país. A função label é usada para adicionar uma legenda ao gráfico, que ajuda a identificar qual linha corresponde a qual país.

Ocultar o eixo de forma implícita quando o índice é usado no matplotlib pode ser conveniente e uma das vantagens é que se você sabe que seu índice será sempre o eixo x, isso pode simplificar a visualização de múltiplas séries de dados. Na programação temos várias formas de fazer algum resultado, então, sinta-se à vontade para usar a forma que funcionar melhor para você. Particularmente, uso em meus códigos uma regrinha de que explícito é melhor que implícito, mas, isso depende do gosto da pessoa desenvolvedora.

Quando você faz a transposição do DataFrame com df_comparacao.T, ele troca linhas por colunas, e o nome do índice acaba sendo País, que é o nome do índice que foi definido anteriormente. Caso queira mudar, basta fazer:

df_comparacao_coluna_anos = df_comparacao.reset_index()  # Move o índice para as colunas
df_comparacao_coluna_anos.columns = ['Anos', 'Brasil', 'Argentina']
df_comparacao_coluna_anos.head()

Espero ter ajudado.

Qualquer dúvida, compartilhe no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Perfeito, Monalisa! É isso mesmo :)

Acabei respondendo a dúvida do Cleiton sobre o Boxplot nessa conversa por engano, hehehe. Editei a mensagem e coloquei a possível solução para o Boxplot no local correto.

Boa noite. Obrigado...