Skip to main content

Sankey plots with Matplotlib

Project description

mpl_sankey

This is a simple package to produce sankey plots with matplotlib. It is an alternative to the matplotlib.sankey module, which sacrifices some flexibility in exchange for a much simpler interface.

Specifically, this package only produces standard horizontal sankey plots, but it does so automatically from data, rather than requiring the user to figure out the spatial distribution of nodes/flows.

How it works

There is a single method, sankey(), which accepts one argument data and several optional keyword arguments.

data must be a 2-dimensional tabular object: best results are obtained with pandas.DataFrames, but numpy.arrays and simple lists of lists are also accepted.

Installation and dependencies

You can install this package through PyPi with pip install mpl_sankey.

The package requires pandas (and, obviously, matplotlib) to work.

Example

data = pd.DataFrame([[1, 'a', 1, 'I', 1, 'success'],
                     [2, 'b', 2, 'III', 2, 'discard'],
                     [1, 'b', 1, 'II', 2, 'success'],
                     [1, 'c', 1, 'II', 2, 'discard'],
                     [2.5, 'a', 2, 'IV', 1, 'discard'],
                     [2, 'a', 1, 'I', 1, 'success']],
                    columns=['Weight', 'First', 'Then', 'After', 'Finally', 'Outcome'])

plt.figure(figsize=(12, 3))
sankey(data, cmap=plt.get_cmap('viridis'))
plt.savefig('featured.png', bbox_inches='tight')

Find more in the Examples notebook.

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

mpl_sankey-0.0.1.tar.gz (4.1 kB view hashes)

Uploaded Source

Built Distribution

mpl_sankey-0.0.1-py3-none-any.whl (16.6 kB view hashes)

Uploaded Python 3

Supported by

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