08 Desafío: creando una animación para comparar diferentes datos
import plotly.graph_objs as go
# Creando una figura
fig = go.Figure()
# Agregando la línea con los datos de Brasil
fig.add_trace(
go.Scatter(x=[datos_bra_inmigrantes_C['Año'].iloc[0]], y=[datos_bra_inmigrantes_C['Inmigrantes'].iloc[0]], mode='lines', name='Inmigrantes de Brasil', line=dict(width=4))
)
# Agregando la línea con los datos de Argentina
fig.add_trace(
go.Scatter(x=[datos_Arg_inmigrantes_C['Año'].iloc[0]], y=[datos_Arg_inmigrantes_C['Inmigrantes'].iloc[0]], mode='lines', name='Inmigrantes de Argentina', line=dict(width=4))
)
# Definiendo las configuraciones de diseño
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=[1980, 2013], autorange=False, title='<b>Año</b>'),
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, # Ancho de la figura en píxeles
height=600 # Altura de la figura en píxeles
)
# Definiendo las configuraciones de animación
frames = []
for i in range(len(datos_bra_inmigrantes_C)):
frame_data = [
go.Scatter(x=datos_bra_inmigrantes_C['Año'].iloc[:i+1], y=datos_bra_inmigrantes_C['Inmigrantes'].iloc[:i+1]),
go.Scatter(x=datos_Arg_inmigrantes_C['Año'].iloc[:i+1], y=datos_Arg_inmigrantes_C['Inmigrantes'].iloc[:i+1])
]
frame = go.Frame(data=frame_data)
frames.append(frame)
fig.frames = frames
# Mostrando la figura
fig.show()