Skip to main content

Create animated bar chart races using matplotlib

Project description

Bar Chart Race

PyPI - License

Make animated bar chart races in Python with matplotlib.

img

Official Documentation

Visit the bar_chart_race official documentation for detailed usage instructions.

Installation

Install with either:

  • pip install bar_chart_race
  • conda install -c conda-forge bar_chart_race

Quickstart

Must begin with a pandas DataFrame containing 'wide' data where:

  • Every row represents a single period of time
  • Each column holds the value for a particular category
  • The index contains the time component (optional)

The data below is an example of properly formatted data. It shows total deaths from COVID-19 for several countries by date.

img

Main function - bar_chart_race

There is one main function, bar_chart_race, which we use to recreate the above video. All parameters are shown with their default value except for filename and title.

import bar_chart_race as bcr
df = bcr.load_dataset('covid19_tutorial')
bcr.bar_chart_race(
    df=df,
    filename='covid19_horiz.mp4',
    orientation='h',
    sort='desc',
    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',
    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'},
    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)  

Save animation to disk or return HTML

Leave the filename parameter as None to return the animation as HTML. If you are running a Jupyter Notebook, it will automatically be embedded into it.

bcr.bar_chart_race(df=df, filename=None)

img

Customization

There are many options to customize the bar chart race to get the animation you desire. Below, we have an animation where the maximum x-value and order of the bars are set for the entire duration. A custom summary label and perpendicular bar of median is also added.

def period_summary(values, ranks):
    top2 = values.nlargest(2)
    leader = top2.index[0]
    lead = top2.iloc[0] - top2.iloc[1]
    s = f'{leader} by {lead:.0f}'
    return {'s': s, 'x': .95, 'y': .07, 'ha': 'right', 'size': 8}

bcr.bar_chart_race(df_baseball, period_length=1000,
                   fixed_max=True, fixed_order=True, n_bars=10,
                   figsize=(5, 3), period_fmt='Season {x:,.0f}',
                   title='Top 10 Home Run Hitters by Season Played')

img

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bar_chart_race_fix-0.2.1.tar.gz (154.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bar_chart_race_fix-0.2.1-py3-none-any.whl (157.0 kB view details)

Uploaded Python 3

File details

Details for the file bar_chart_race_fix-0.2.1.tar.gz.

File metadata

  • Download URL: bar_chart_race_fix-0.2.1.tar.gz
  • Upload date:
  • Size: 154.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for bar_chart_race_fix-0.2.1.tar.gz
Algorithm Hash digest
SHA256 f907760af5ab418ca6d57b6f5eb3f12b6de7dd6ed9509fe68f56c0530a02c478
MD5 5d1a71e920f7b8aed7f612ef56db64d0
BLAKE2b-256 6f3ed96b13b1ffeca4bf720b0a399b9b06cc98e2ef2534c5f35e3fd5a26be896

See more details on using hashes here.

File details

Details for the file bar_chart_race_fix-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for bar_chart_race_fix-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fd94dc29c433eeadeb07e8369104cb4a5663810403a2612895df816bfe7bffea
MD5 bcd9d57c1af9d5e602075c9085fd7244
BLAKE2b-256 9dd21e0d6c4e0c79e9644355bf0b1b594fd3f395c309a967cc65d1ecddcb0bb2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page