Display Sankey diagrams in IPython / Jupyter notebook using d3-sankey-diagram.
Option 1: to install using pip:
$ pip install ipysankeywidget
Then, if using the classic Jupyter Notebook:
$ jupyter nbextension enable --py --sys-prefix ipysankeywidget
$ jupyter nbextension enable --py --sys-prefix widgetsnbextension # <-- you might have already done this,
# but it's safe to do again
Or, if using Jupyterlab:
$ jupyter labextension install jupyter-sankey-widget @jupyter-widgets/jupyterlab-manager
Option 2: to install using conda:
$ conda install -c conda-forge ipysankeywidget # (that's it, nbextensions enabled automatically)
Tested in Firefox and Chrome. There have been reports that it's not working in Safari.
See the
d3-sankey-diagram API docs:
the value
of the SankeyWidget
is exactly the same as 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. You can try these online using Binder, or follow the links to static versions on nbviewer:
- 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.
- Nicholas Bollweg
- Ali Alsabbah
- Remi Bois
- Miguel Mendez