Drawing Sankey diagrams in Python
Project description
Sugikey
Description
This package aims at providing a reasonably simple and flexible way to draw Sankey diagrams and related flow diagrams in Python. Sankey diagrams are flow diagrams composed of arrows of width proportional to the flow of e.g. energy or mass. We use the Sugiyama method to derive layered graph layouts, hence the portmanteau Sugi(yama)(San)key.
Some key facts:
- Consumes pandas dataframes or networkx directed graphs as inputs.
- Uses NetworkX for processing of the underlying graph structure.
- Produces visual output with Matplotlib.
- Limitation: the created diagrams are not interactive, i.e. the arrows cannot be moved. Interactive Sankey diagrams can be created with a variety of other tools, including d3-Sankey.
Visuals
Installation
You will need Python >= 3.9, as well as NetworkX, pandas, Matplotlib and PuLP for layout methods using mathematical optimization. The dependencies are managed with Poetry, which you can use to install the package (see poetry.lock and pyproject.toml).
Usage
The simplest way to use the package are the high-level functions sankey_from_dig and sankey_from_df, which take as input a networkx directed graph and a pandas dataframe, respectively.
# Sankey diagram from a networkx directed graph
dig = examples.balanced_tree_with_cross_edge()
sankey.sankey_from_dig(dig)
# Sankey diagram from a pandas dataframe
flow_df = pd.read_csv(csv_path)
sankey.sankey_from_df(flow_df)
Have a look at the documentation for more information.
Support
Write an issue if there is an issue.
Authors and acknowledgment
Zlatan B.
Project status
This is a personal project without any guarantee. If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
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.