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 with at least 3 columns: best results are obtained with pandas.DataFrames, but numpy.arrays and simple lists of lists are also accepted.

  • each row corresponds to a "flow"
  • the first column stores the weights (that is, the tickness of each flow drawn), and must be an int or float
  • each other column denotes a node (by its label, which can have any type) where the flow passes, at each stage
  • if data is a pandas.DataFrame, then the column names are represented on top of each stage

Example

from mpl_sankey import sankey
from matplotlib import pyplot as plt
import pandas as pd

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.

Installation and dependencies

You can install this package through PyPi with pip install mpl_sankey, or just clone the repo from github.

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

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.1.0.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

mpl_sankey-0.1.0-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file mpl_sankey-0.1.0.tar.gz.

File metadata

  • Download URL: mpl_sankey-0.1.0.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.1+

File hashes

Hashes for mpl_sankey-0.1.0.tar.gz
Algorithm Hash digest
SHA256 278cb3f0b6ac48ba05060574603aabdb7cb7012048868c7617ba3075d7235bc4
MD5 7380a9532462cd5763a16e206f75118b
BLAKE2b-256 311fb6237144c709425175a359cd6626733d026052ac0964bb02eca0c3ff0beb

See more details on using hashes here.

File details

Details for the file mpl_sankey-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: mpl_sankey-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.1+

File hashes

Hashes for mpl_sankey-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0b68485e0228fcf00309256df7354d98d65fc3563dd42f037d428a423c8d8d2c
MD5 23734eb264c7705f0277f6cf25d9ae66
BLAKE2b-256 4fb8b0cac85b930e4a8d687a23527625cb403b0bce7fb736b15c75a40ed261e2

See more details on using hashes here.

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