Animated plotting extension for Pandas with Matplotlib
Project description
Pandas-Alive
Animated plotting extension for Pandas with Matplotlib
Pandas-Alive is intended to provide a plotting backend for animated matplotlib charts for Pandas DataFrames, similar to the already existing Visualization feature of Pandas.
With Pandas-Alive, creating stunning, animated visualisations is as easy as calling:
df.plot_animated()
Installation
Install with pip install pandas-alive
Usage
As this package builds upon bar_chart_race
, the example data set is sourced from there.
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 the highest 20 countries by date.
To produce the above visualisation:
- Check Requirements first to ensure you have the tooling installed!
- Call
plot_animated()
on the DataFrame- Either specify a file name to write to with
df.plot_animated(filename='example.mp4')
or usedf.plot_animated().get_html5_video
to return a HTML5 video
- Either specify a file name to write to with
- Done!
import pandas_alive
df = pandas_alive.load_dataset()
df.plot_animated(filename='example-barh-chart.gif')
Currently Supported Chart Types
pandas-alive
current supports:
Horizontal Bar Charts
import pandas_alive
df = pandas_alive.load_dataset()
df.plot_animated(filename='example-barh-chart.gif')
Vertical Bar Charts
import pandas_alive
df = pandas_alive.load_dataset()
df.plot_animated(filename='example-barv-chart.gif',orientation='v')
Line Charts
With as many lines as data columns in DataFrame.
import pandas_alive
df = pandas_alive.load_dataset()
df.diff().fillna(0).plot_animated(filename='example-line-chart.gif',kind='line')
Multiple Charts
pandas-alive
supports multiple animated charts in a single visualisation.
- Create each chart type ensure to disable writing to file with
write_to_file=False
- Create a list of all charts to include in animation
- Use
animate_multiple_plots
with afilename
and the list of charts (this will usematplotlib.subplots
) - Done!
import pandas_alive
df = pandas_alive.load_dataset()
animated_line_chart = df.diff().fillna(0).plot_animated(kind='line',write_to_file=False,period_length=200)
animated_bar_chart = df.plot_animated(kind='barh',write_to_file=False,period_length=200,n_visible=10)
pandas_alive.animate_multiple_plots('example-bar-and-line-chart.gif',[animated_bar_chart,animated_line_chart]
Inspiration
The inspiration for this project comes from:
Requirements
If you get an error such as TypeError: 'MovieWriterRegistry' object is not an iterator
, this signals there isn't a writer library installed on your machine.
This package utilises the matplotlib.animation function, thus requiring a writer library.
Ensure to have one of the supported tooling software installed prior to use!
- ffmpeg
- ImageMagick
- Pillow
- See more at https://matplotlib.org/3.2.1/api/animation_api.html#writer-classes
Contributing
Pull requests are welcome! Please help to cover more and more chart types!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pandas_alive-0.1.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cc190df1384484adaa392c892f22aa133295eff4797e1a920c15d224cee51da |
|
MD5 | c606f8863730bf6e938095866d4f3bab |
|
BLAKE2b-256 | 9d4c42d07990860542a7dae2cb3eb917fd90bbfdf9b64096f54459686033140c |