08 Desafío: creando una animación para comparar diferentes datos
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_inmigrantes_C['Año'].iloc[0]], y=[datos_col_inmigrantes_C['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_inmigrantes_C['Año'].iloc[0]), int(datos_col_inmigrantes_C['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_inmigrantes_C['Año'].iloc[:i+1], y=datos_col_inmigrantes_C['Inmigrantes'].iloc[:i+1])]) for i in range(len(datos_col_inmigrantes_C))]
fig.frames = frames
# Mostrar la figura
fig.show()