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