Seria possível fazer o gráfico usando um único Dataframe possuindo 3 colunas: 'Ano', 'Argentina' e 'Brasil?'
Seria possível fazer o gráfico usando um único Dataframe possuindo 3 colunas: 'Ano', 'Argentina' e 'Brasil?'
Eu consegui fazer dessa forma:
fig = go.Figure(
data=[
go.Scatter(x=[dados_dict['Ano'].iloc[0]], y=[dados_dict['Argentina'].iloc[0]], mode='lines', name='Argentina', line = dict(width = 4)),
go.Scatter(x=[dados_dict['Ano'].iloc[0]], y=[dados_dict['Brasil'].iloc[0]], mode='lines', name='Brasil', line = dict(width = 4))
],
layout=go.Layout(
title=dict(
text='<b>Imigração da Argentina e Brasil para o Canadá (1980-2013)</b>',
x=0.12,
xanchor='left',
font=dict(size=20)
),
xaxis=dict(range=[1980, 2013], autorange=False, title='<b>Ano</b>'),
yaxis=dict(range=[0, 3000], autorange=False, title='<b>Número de imigrantes</b>'),
updatemenus=[dict(
type='buttons',
showactive=False,
buttons=[dict(
label='Play',
method='animate',
args=[None, {'frame': {'duration': 100, 'redraw': True}, 'fromcurrent': True}]
)]
)],
width=1000,
height=500
)
)
frames = [
go.Frame(
data=[
go.Scatter(x=dados_dict['Ano'].iloc[:i+1], y=dados_dict['Argentina'].iloc[:i+1]),
go.Scatter(x=dados_dict['Ano'].iloc[:i+1], y=dados_dict['Brasil'].iloc[:i+1])
]
)
for i in range(len(dados_dict))
]
fig.frames = frames
fig.show()
Qual a diferença dessa maneira que eu fiz para o uso do fig.add_trace()?
Olá, William! Como vai?
A sua solução ficou ótima também!
A principal diferença é que data=[...]
define os traços iniciais todos de uma vez na criação do gráfico, enquanto fig.add_trace()
adiciona cada traço separadamente após o gráfico já estar criado, o que é útil para construções dinâmicas ou condicionais.
Espero ter ajudado e fico à disposição se precisar.
Abraço e bons estudos!