Display Sankey diagrams in IPython / Jupyter notebook using d3-sankey-diagram.
To install using pip:
$ pip install ipysankeywidget
$ 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
To install using conda:
$ conda install -c conda-forge ipysankeywidget # (that's it, nbextensions enabled automatically)
For a development installation (requires npm),
$ git clone https://github.com/ricklupton/ipysankeywidget.git
$ cd ipysankeywidget
$ pip install -e .
$ jupyter nbextension install --py --symlink --user ipysankeywidget
$ jupyter nbextension enable --py --user ipysankeywidget
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:
- 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