Display Sankey diagrams in IPython / Jupyter notebook using d3-sankey-diagram.
pip install ipysankeywidget
or with uv:
uv add ipysankeywidget
or with conda:
conda install -c conda-forge ipysankeywidget
For a development install, see DEVELOPING.md.
Tested in Firefox and Chrome. There have been reports that it's not working in Safari.
See the
d3-sankey-diagram API docs:
the attributes of the SankeyWidget
are the same as the properties of the sankey
object described there.
To change the figure size, use the ipywidgets Layout object:
layout = Layout(width="1000", height="1200")
SankeyWidget(links=data, layout=layout)
See notebooks in examples folder for usage examples.
uv run jupyter lab examples/Simple\ example.ipynb
You can also try these online using Binder, or follow the links to static versions on nbviewer:
- Updated to use anywidget for simpler packaging.
- Updated d3-sankey-diagram to v0.9.1
- Compatible with Jupyter Lab as well as Jupyter notebook.
- Expose d3-sankey-diagram nodePositions() option to allow for custom node layout.
- Experimental support for link "markers"
- Experimental support for showing HTML info for links
- Update to d3-sankey-diagram v0.8.0
- Now supports Jupyterlab
- You can now show link values as SVG text elements. Set
linkLabelFormat
to a d3-format string; links whose value is more thanlinkLabelMinWidth
will have a label using that format. - Upgrade to d3-sankey-diagram version 0.7.3
- ipysankeywidget can now be installed using conda (thanks to Ali Alsabbah #33)
- Add a check for duplicate links (thanks to Remi Bois #23)
- Add events for clicking on nodes and links:
on_node_clicked
andon_link_clicked
. These replace theon_selected
event.
- Rick Lupton
- Nicholas Bollweg
- Ali Alsabbah
- Remi Bois
- Miguel Mendez