Linking and Layout

Simple example

Advanced examples

Linking and Layout

Exporting Images

In [1]:
from ipysankeywidget import SankeyWidget

This uses the base ipywidgets for layout and data, but you can use any widgets!

In [2]:
from ipywidgets import (
    VBox,
    HBox,
    IntSlider,
)
In [3]:
links = [
    {'source': 'start', 'target': 'A', 'value': 10},
    {'source': 'A', 'target': 'B', 'value': 10},
    {'source': 'C', 'target': 'A', 'value': 10},
    {'source': 'A', 'target': 'C', 'value': 10},
]
In [4]:
sankey = SankeyWidget(links=links)
sankey

A convenience factory function

In [5]:
def slider(link, i, sankey):
    value = IntSlider(description="{source}{target}".format(**link), min=0, max=10, step=1, value=10)

    def _change(change):
        sankey.links[i]["value"] = value.value
        sankey.send_state()
    
    value.observe(_change)
    
    return value

Build up a slider per link to control the value:

In [6]:
sliders = [slider(link, i, sankey) for i, link in enumerate(links)]
In [7]:
box = HBox(children=[sankey, VBox(children=sliders)])
box
In [ ]: