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.DataFrame
s, but numpy.array
s 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
orfloat
- each other column denotes a node (by its label, which can have any type) where the flow passes, at each stage
- if
data
is apandas.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
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
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 278cb3f0b6ac48ba05060574603aabdb7cb7012048868c7617ba3075d7235bc4 |
|
MD5 | 7380a9532462cd5763a16e206f75118b |
|
BLAKE2b-256 | 311fb6237144c709425175a359cd6626733d026052ac0964bb02eca0c3ff0beb |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b68485e0228fcf00309256df7354d98d65fc3563dd42f037d428a423c8d8d2c |
|
MD5 | 23734eb264c7705f0277f6cf25d9ae66 |
|
BLAKE2b-256 | 4fb8b0cac85b930e4a8d687a23527625cb403b0bce7fb736b15c75a40ed261e2 |