Solucionado, adjunto el codigo:
Colombia:
import plotly.graph_objs as go
# Criando uma figura
fig = go.Figure()
# Adicionando a linha do gráfico e definindo a espessura da linha
fig.add_trace(
go.Scatter(x=[datos_col['Año'].iloc[0]], y=[datos_col['Inmigrantes'].iloc[0]], mode='lines', name='Inmigrantes', line=dict(width=4))
)
# Definir la configuración del layout
fig.update_layout(
title=dict(
text='<b>Inmigración de Colombianos hacia Canadá en el periodo de 1980 a 2013</b>',
x=0.1,
xanchor='left',
font=dict(size=18)
),
xaxis=dict(
range=[int(datos_col['Año'].iloc[0]), int(datos_col['Año'].iloc[-1])], # Set the x-axis range to cover all years
autorange=False,
title='<b>Año</b>',
tickmode='linear', # Use linear tick mode
dtick=5 # Set tick interval to 5 years
),
yaxis=dict(range=[0, 3000], autorange=False, title='<b>Número de Inmigrantes</b>'),
updatemenus=[dict(
type='buttons',
showactive=False,
buttons=[dict(
label='Play',
method='animate',
args=[None, {'frame': {'duration': 100, 'redraw': True}, 'fromcurrent': True}]
)]
)],
width=1200,
height=600
)
# Definir la configuración de la animación
frames = [go.Frame(data=[go.Scatter(x=datos_col['Año'].iloc[:i+1], y=datos_col['Inmigrantes'].iloc[:i+1])]) for i in range(len(datos_col))]
fig.frames = frames
# Mostrar la figura
fig.show()
Brasil y Argentina
import plotly.graph_objs as go
fig = go.Figure()
fig.add_trace(
go.Scatter(x=[datos_brasil['Año'].iloc[0]], y=[datos_brasil['Inmigrantes'].iloc[0]], mode='lines', name='Inmigrantes de Brasil', line=dict(width=4))
)
fig.add_trace(
go.Scatter(x=[datos_argentina['Año'].iloc[0]], y=[datos_argentina['Inmigrantes'].iloc[0]], mode='lines', name='Inmigrantes de Argentina', line=dict(width=4))
)
fig.update_layout(
title=dict(
text='<b>Inmigración de Brasil y Argentina a Canadá en el período de 1980 a 2013</b>',
x=0.1,
font=dict(size=18)
),
xaxis=dict(
range=[int(datos_brasil['Año'].iloc[0]), int(datos_brasil['Año'].iloc[-1])], # Set the x-axis range to cover all years
autorange=False,
title='<b>Año</b>',
tickmode='linear', # Use linear tick mode
dtick=5 # Set tick interval to 5 years
),
yaxis=dict(range=[0, 3000], autorange=False, title='<b>Número de inmigrantes</b>'),
updatemenus=[dict(
type='buttons',
showactive=False,
buttons=[dict(
label='Play',
method='animate',
args=[None, {'frame': {'duration': 100, 'redraw': True}, 'fromcurrent': True}]
)]
)],
width=1200,
height=600
)
frames = []
for i in range(len(datos_brasil)):
frame_data = [
go.Scatter(x=datos_brasil['Año'].iloc[:i+1], y=datos_brasil['Inmigrantes'].iloc[:i+1]),
go.Scatter(x=datos_argentina['Año'].iloc[:i+1], y=datos_argentina['Inmigrantes'].iloc[:i+1])
]
frame = go.Frame(data=frame_data)
frames.append(frame)
fig.frames = frames
fig.show()
fig.write_html('/content/inmigracion_brasil_argentina_canada_animado.html', full_html=True)