Crea gráficos de barras animados para mostrar rankings a través del tiempo

Animación ranking barchart
Tienes por ejemplo el dato mensual de ventas totales por ciudades de los últimos 5 años y quieres mostrar para una presentación o en tu sitio web la manera como ciertas ciudades han subido o bajado en el ranking de la ciudad con más ventas a través de los años; y hacer esto puede que requiera bastante código o alguien con conocimientos de animación que lo haga manualmente. Para ayudarte con esto, existe una librería de Python llamada bar_chart_race la cual te permite generar un archivo de video con la animación, la cual podrás utilizar donde lo requieras.

Para instalarla puedes usar este comando

pip install bar_chart_race

Y este es un ejemplo del código de su página que puedes tomar y adaptar a tus necesidades:

import bar_chart_race as bcr
df = bcr.load_dataset('covid19_tutorial')
bcr.bar_chart_race(
	#Dataset usado para la animación
    df=df,
    #Nombre del archivo de video a generar
    filename='covid19_horiz.mp4', 
    #Dirección del ranking, si lo deseas horizontal o vertical
    orientation='h', 
    #Tipo de ordenamiento, ascendente o descendente
    sort='desc', 
    #Cantidad de barras a mostrar
    n_bars=6, 
    fixed_order=False,
    fixed_max=True,
    steps_per_period=10,
    interpolate_period=False,
    label_bars=True,
    bar_size=.95,
    period_label={'x': .99, 'y': .25, 'ha': 'right', 'va': 'center'},
    period_fmt='%B %d, %Y',
    #Información que debe aparecer como resumen general
    period_summary_func=lambda v, r: {'x': .99, 'y': .18,
                                      's': f'Total deaths: {v.nlargest(6).sum():,.0f}',
                                      'ha': 'right', 'size': 8, 'family': 'Courier New'}, 
    #Puedes mostrar una barra perpendicular a las barras para marcar la mediana o la media 
    perpendicular_bar_func='median', 
    period_length=500,
    figsize=(5, 3),
    dpi=144,
    cmap='dark12',
    title='COVID-19 Deaths by Country',
    title_size='',
    bar_label_size=7,
    tick_label_size=7,
    shared_fontdict={'family' : 'Helvetica', 'color' : '.1'},
    scale='linear',
    writer=None,
    fig=None,
    bar_kwargs={'alpha': .7},
    filter_column_colors=False)  

El resultado será algo como esto:

Si bien este puede no considerarse un gráfico para análisis de las etapas de tus proyectos de ciencia  de datos, puede ser un recurso interesante para mostrar resultados a las personas.

Para saber más de esta librería puedes visitar su página web en este enlace

 

Publicar un comentario

0 Comentarios