fig = go.Figure() #------>>> Figura vazia.
fig.add_trace( #---->>> Adicionar traço
go.Scatter( #---->>> Objeto recebe parametros go.Scatter
x=[dados_brasil['Ano'].iloc[0]], #---->>> eixo x = dataframe[coluna] exibido. iloc[0] para a linha iniciar de 0
y=[dados_brasil['Imigrantes'].iloc[0]], #---->>> eixo y = dataframe[coluna] exibido. iloc[0] para a linha iniciar de 0
mode='lines', #---->>> modo de exibição 'line'/linhas
name='Imigrantes - Brasil', #---->>> nome da linha
line=dict(width=4))) #---->>> direção e espesura da linha
# Criado traçoo para argentina
fig.add_trace( #---->>> Adicionar traço
go.Scatter( #---->>> Objeto recebe parametros go.Scatter
x=[angentina['Ano'].iloc[0]], #---->>> eixo x = dataframe[coluna] exibido. iloc[0] para a linha iniciar de 0
y=[angentina['Argentina'].iloc[0]], #---->>> eixo y = dataframe[coluna] exibido. iloc[0] para a linha iniciar de 0
mode='lines', #---->>> modo de exibição 'line'/linhas
name='Imigrantes - Argentina', #---->>> nome da linha
line=dict(width=4))) #---->>> direção e espesura da linha
#Layout mantido
fig.update_layout( #---->>> Editando layout
title=dict( #---->>> titulo
text='<b>Imigração do Brasil para o Canadá no período de 1980 a 2013</b>', #---->>> Titulo em negrito <b>...</b>
x=0.12, #---->>> Posição horizontal(12% da largura da firgura.)
xanchor='left', #---->>> Alinhamento a esquerda
font=dict(size=20)), #---->>> tamanho do titulo
xaxis=dict( #---->>> Definiçies do eixo X
range=[1980, 2013], #---->>> Menor e maior valor exibido.
autorange=False, #---->>> Se será ajustado automaticamentoe. True == Sim, False == Não
title='<b>Ano</b>'), #---->>> Titutlo tambem em negrito.
yaxis=dict(range=[0, 3000], autorange=False, title='<b>Número de imigrantes</b>'), #---->>> Definições do eixo Y
# O botão de ação.
updatemenus=[dict( #---->>> Adicionando um botão PLAY
type='buttons', #---->>> Tipo botão
showactive=False, #---->>> Mostrar atividade == não. Botão não estara ativo no inico
buttons=[dict( #---->>> Definiçoes do botão
label='Play', #---->>> Legenda 'Play'
method='animate', #---->>> Ativar a animação
args=[None, #---->>> Argumento args com fois elementos, none = nehuma camada será afetada.
{'frame': {'duration': 100, 'redraw': True}, #---->>> frame duração de cada quadro
'fromcurrent': True}]
)]
)],
width=1500, height=500) #---->>> Largura e altura do grafico e picels
frames = [go.Frame(
data=[
go.Scatter(x=dados_brasil['Ano'].iloc[:i+1], y=dados_brasil['Imigrantes'].iloc[:i+1]), #---->>> ação da linha Brasil
go.Scatter(x=angentina['Ano'].iloc[:i+1], y=angentina['Argentina'].iloc[:i+1]) #---->>> ação da linha Argentina
]
) for i in range(len(dados_brasil))]
fig.frames = frames #---->>> Lista aficionada a figura.frame
fig.show()