1
resposta

Desafio: criando uma animação para comparar diferentes dados

import pandas as al
import plotly.graph_objs as go
# Carregar dados
df = al.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 = al.DataFrame({'ano': anos, 'imigrantes': brasil.values})
dados_arg = al.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='blue')),
        go.Scatter(x=[], y=[], mode='lines+markers', name='Argentina', line=dict(color='green'))
    ],
    layout=layout,
    frames=frames
)

fig.write_html('imigracao_para_o_Canadá_Brasil_e_Argentina.html')

fig.show()

file:///C:/Users/thamy/Downloads/imigracao_para_o_Canadá_Brasil_e_Argentina.html

1 resposta

Muito bom colega! parabéns!