sankeyウィジェットのテスト

  • https://github.com/ricklupton/ipysankeywidget にあるように, anacondaの場合condaを利用してipysankeywidgetをインストール
  • JavaScriptのモジュールd3をインストールする必要があるようだ、Webブラウザ内での描画のために。

d3.jsを直接的に使うモジュールが http://bl.ocks.org/Neilos/584b9a5d44d5fe00f779 にある。

それで試してみたのが

http://8tops.yamanashi.ac.jp/~toyoki/verga/sankey/

スケールを適当に変えてしまうところを固定したいが、できていない。

In [17]:
from ipysankeywidget import SankeyWidget
In [79]:
links = [
     {'source': '総合受付', 'target': '温泉', 'value': 150, 'type':'x', 'opacity':0.5},
    {'source': '総合受付', 'target': 'キャンプ場', 'value': 100, 'type':'x', 'opacity':0.5},
    {'source': 'キャンプ場', 'target': '総合受付', 'value': 20, 'type':'y'},
    {'source': 'キャンプ場', 'target': '温泉', 'value': 30, 'type':'y'},
    {'source': '温泉', 'target': '総合受付', 'value': 200, 'type':'z'},
    {'source': '温泉', 'target': 'キャンプ場', 'value': 50, 'type':'z'}
]
nodes = [{'type': '総合受付', 'id': '総合受付', 'name':'総合受付', 'direction': 'r'}, {'id': 'キャンプ場', 'name':"キャンプ場", 'direction': 'l'},
         {'id': '温泉', 'name':'温泉', 'direction': 'l'}]

# orderはうまく行かない
order = [[[],['総合受付'],[]],
        [['キャンプ場'],[],[],],
         [[],['温泉'],[]]]
In [81]:
from ipywidgets import Layout
layout = Layout(width="500", height="400")
# SankeyWidget(links=links,nodes=nodes, order=order, layout=layout)
SankeyWidget(links=links,nodes=nodes, layout=layout)
In [86]:
links = [
     {'source': '総合受付', 'target': '温泉', 'value': 150, 'type':'x', 'opacity':0.5},
    {'source': '総合受付', 'target': '温泉', 'value': 100, 'type':'y', 'opacity':0.5},
    {'source': 'キャンプ場', 'target': '総合受付', 'value': 20, 'type':'x'},
    {'source': 'キャンプ場', 'target': '総合受付', 'value': 30, 'type':'y'},
    {'source': '温泉', 'target': 'キャンプ場', 'value': 30, 'type':'x'},
    {'source': '温泉', 'target': 'キャンプ場', 'value': 50, 'type':'y'}
]
nodes = [{'type': '総合受付', 'id': '総合受付', 'name':'総合受付', 'direction': 'l'},
         {'id': 'キャンプ場', 'name':"キャンプ場", 'direction': 'r'},
         {'id': '温泉', 'name':'温泉', 'direction': 'r'}]

# orderはうまく行かない
order = [[[],['総合受付'],[]],
        [['キャンプ場'],[],[],],
         [[],['温泉'],[]]]

layout = Layout(width="500", height="400")
# SankeyWidget(links=links,nodes=nodes, order=order, layout=layout)
SankeyWidget(links=links,nodes=nodes, layout=layout)