1
resposta

[Sugestão] Desafio

import pandas as pd
import plotly.graph_objects as go

# Carregar dados
df = pd.read_csv('/content/imigrantes_canada.csv')
df.set_index('País', inplace=True)
anos = list(map(int, range(1980, 2014)))
anos_str = list(map(str, anos))

# Selecionar Brasil e Argentina
brasil = df.loc['Brasil', anos_str].astype(int)
argentina = df.loc['Argentina', anos_str].astype(int)

# DataFrame organizado
dados_brasil = pd.DataFrame({'ano': anos, 'imigrantes': brasil.values})
dados_arg = pd.DataFrame({'ano': anos, 'imigrantes': argentina.values})

# Frames (animações ao longo dos anos)
frames = []
for i in range(1, len(anos) + 1):
    frame = go.Frame(
        data=[
            go.Scatter(x=dados_brasil['ano'][:i], y=dados_brasil['imigrantes'][:i],
                       mode='lines+markers', name='Brasil', line=dict(color='green')),
            go.Scatter(x=dados_arg['ano'][:i], y=dados_arg['imigrantes'][:i],
                       mode='lines+markers', name='Argentina', line=dict(color='blue'))
        ],
        name=str(anos[i - 1])
    )
    frames.append(frame)

# Layout com botão de animação
layout = go.Layout(
    title="Imigração para o Canadá: Brasil e Argentina (1980–2013)",
    xaxis=dict(title='Ano', range=[1980, 2013]),
    yaxis=dict(title='Número de Imigrantes',
               range=[0, max(brasil.max(), argentina.max()) + 1000]),
    updatemenus=[dict(
        type="buttons",
        buttons=[dict(label="▶️ Play",
                      method="animate",
                      args=[None, {"frame": {"duration": 300, "redraw": True},
                                   "fromcurrent": True}])],
        showactive=False
    )]
)

# Traços iniciais vazios
fig = go.Figure(
    data=[
        go.Scatter(x=[], y=[], mode='lines+markers', name='Brasil', line=dict(color='green')),
        go.Scatter(x=[], y=[], mode='lines+markers', name='Argentina', line=dict(color='blue'))
    ],
    layout=layout,
    frames=frames
)

fig.show()

file:///G:/Meu%20Drive/mauro_projetos/DATA%20VISUALIZATION%20+%20PYTHON/data_visualization_canada/html/animacao_brasil_argentina.html

1 resposta

Olá, Mauro! Como vai?

Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Percebi que você explorou o uso de dataframes com Pandas, aplicou muito bem o Plotly com frames animados para representar a evolução da imigração ao longo dos anos e ainda compreendeu a importância de separar os dados por país para organizar a visualização de forma clara e comparativa.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!