Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Desafío: creando una animación para comparar diferentes datos

import plotly.graph_objs as go
import plotly.graph_objs as go  # Biblioteca para gráficos interactivos

# Creamos la figura base
fig = go.Figure()

# Agregamos la línea de Argentina con el primer punto
fig.add_trace(
    go.Scatter(
        x=[df_argentina['Año'].iloc[0]],
        y=[df_argentina['Inmigrantes'].iloc[0]],
        mode='lines',
        name='Argentina',
        line=dict(width=4, color='#1295bf'),
        hovertemplate='Año: %{x}<br>Inmigrantes: %{y}<extra></extra>'
    )
)

# Agregamos la línea de Brasil con el primer punto
fig.add_trace(
    go.Scatter(
        x=[df_brasil['Año'].iloc[0]],
        y=[df_brasil['Inmigrantes'].iloc[0]],
        mode='lines',
        name='Brasil',
        line=dict(width=4, color='#a8bb09'),
        hovertemplate='Año: %{x}<br>Inmigrantes: %{y}<extra></extra>'
    )
)


# Configuración del diseño general del gráfico
fig.update_layout(
    title=dict(
        text='<b>Inmigración de argentinos y brasileños hacia Canadá en el periodo de 1980 a 2013</b>',
        x=0.12,
        xanchor='left',
        font=dict(size=18)
    ),
    xaxis=dict(
        autorange=True,
        title='<b>Año</b>',
        tickangle=-45
    ),
    yaxis=dict(
        autorange=True,
        title='<b>Número de Inmigrantes</b>'
    ),
    updatemenus=[
        dict(
            type='buttons',
            showactive=False,

            xanchor='right',
            yanchor='bottom',
            buttons=[
                dict(
                    label='▶ Play',
                    method='animate',
                    args=[None, {
                        'frame': {'duration': 400, 'redraw': True},
                        'fromcurrent': True,
                        'mode': 'immediate'
                    }]
                ),
                dict(
                    label='⏸ Pause',
                    method='animate',
                    args=[[None], {
                        'frame': {'duration': 0, 'redraw': False},
                        'mode': 'immediate'
                    }]
                ),
                dict(
                    label='⏮ Reinicio',
                    method='animate',
                    args=[['frame0'], {
                        'frame': {'duration': 0, 'redraw': True},
                        'mode': 'immediate',
                        'transition': {'duration': 0}
                    }]
                )

            ]
        )
    ],
    width=1000,
    height=500
)

# Creamos los frames para la animación, uno por cada fila del DataFrame
frames = [
    go.Frame(
        name=f'frame{i}',
        data=[
        go.Scatter(x=df_argentina['Año'].iloc[:i+1], y=df_argentina['Inmigrantes'].iloc[:i+1], line=dict(width=4, color='#1295bf')),
        go.Scatter(x=df_brasil['Año'].iloc[:i+1], y=df_brasil['Inmigrantes'].iloc[:i+1], line=dict(width=4, color='#a8bb09'))
    ],
        layout=go.Layout(
        yaxis=dict(autorange=True)
        )
    )
    for i in range(len(df_argentina)+1)
]

# Asignamos los frames a la figura
fig.frames = frames

# Guardamos el gráfico animado como un archivo HTML
fig.write_html('/content/drive/MyDrive/Pandas_4/arg_bra_animado.html')

# Mostramos el gráfico animado
fig.show()

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

url para descargar gráfico

1 respuesta

Hola , espero que estés muy bien.

Felicitaciones por tu aprendizaje. Estamos priorizando el foro para postear dudas, así optimizamos el tiempo de respuesta para ustedes.

Para no dejar de compartir los códigos, actividades y ejercicios que realizas, creamos un canal en Discord (#compartatucodigo) donde puedes compartirlos, dar y sugerir mejoras con el resto de tus compañeros.

Un saludo.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios