格子状(grid)
レイアウト辞書の“name”キーに“grid”を指定すると、ノードを格子状に配置することができます。(47行目)
オプションとして“rows”キーと“columns”キー(48~49行目)を指定することで、行数と列数を設定することができます。
[ソースコード]
1 | import dash |
[ブラウザで表示]
ノードを3行3列の格子状に配置することができました。
レイアウト辞書の“name”キーに“grid”を指定すると、ノードを格子状に配置することができます。(47行目)
オプションとして“rows”キーと“columns”キー(48~49行目)を指定することで、行数と列数を設定することができます。
[ソースコード]
1 | import dash |
[ブラウザで表示]
ノードを3行3列の格子状に配置することができました。
レイアウト辞書の“name”キーに“circle”を指定すると、ノードを円形に配置することができます。(46~48行目)
[ソースコード]
1 | import dash |
[ブラウザで表示]
ノードを円形に配置することができました。
ノードを手動で配置する場合、配置方法をpresetに指定します。
手動的な配置は、ノードの位置に特定の意味を持たせる場合(緯度・経度など)や、別のネットワーク分析のツール(NetworkXなど)であらかじめ計算しておいた配置を利用する場合などに使われます。
以下のソースでは、アメリカの都市の緯度・経度に合わせてX,Y座標を定義しています。(8~21行目)
[ソースコード]
1 | import dash |
[ブラウザで表示]
都市の緯度・経度に合わせて、ノードが配置されました。
Cytoscapeクラスでは、インスタンス生成時の引数layoutに辞書型のデータを設定することにより、ノードの配置方法を指定できます。
レイアウトに指定できる配置方法の種類は以下の通りです。
| 配置方法 | 説明 |
|---|---|
| preset | 各ノードの座標を手動で指定する。 position:X,Y座標 |
| grid | 格子状にノードを配置する。 row:格子の行数 cols:格子の列数 |
| circle | 円状にノードを配置する。 radius:円の半径 startAngle:ノードの開始位置の角度(弧度法) sweep:最初のノードと最後のノードの間の角度(弧度法) |
| concentric | 同心円状にノードを配置する。 startAngle:ノードの開始位置の角度(弧度法) sweep:最初のノードと死後のノードの間の角度(弧度法) |
| breadthfirst | 階層的にノードを配置する。 roots:ルートとなるノードのID circle:描画モード ( top-down / circle ) |
| cose | 物理シミュレーションに基づいてノードを配置する。複合グラフが考慮される。 gravity:物理シミュレーション時に使われる重力の値 |
| random | ランダムな位置にノードを配置する。 |
次回から、それぞれの配置方法を使ってネットワーク図を表示していきます。
複合ノード(Compoundノード)を使うと、ノード間に親子関係を作ることができます。
子ノードの “parent”キーに親ノードのIDを指定して親子関係を定義します。
[ソースコード]
1 | import dash |
[ブラウザで表示]
親ノード(United States / Canada)のサイズは、子ノードに合わせて自動的に計算されます。
子ノードを移動させると、その親ノードの範囲も自動で変わります。
また親ノードを移動させるとその親ノードに属する子ノードもまとめて移動します。
ネットワークの関係を把握したいとき、ノート間の重みによってエッジの重さ(大きさ)を変えたり、同じ属性を持つノードの色や形を統一したりすることで、ネットワーク構造をより把握しやすくなります。
Cytoscapeクラスでは、インスタンス生成時に引数stylesheetにスタイルを記述することで、ノードやエッジにスタイル(色・幅・形など)を適用できます。
スタイルの設定手順は下記の通りです。
[ソースコード]
1 | import dash |
[ブラウザで表示]
各要素に対して、色や形を指定することができました。
ブール型属性を設定すると、ネットワーク図のノードを選択できなくしたり、移動できなくしたりすることができます。
[ソースコード]
1 | import dash |
[ブラウザで表示]
設定した属性値通りに、ノードによって選択できなくなったり、移動できなくなったりしていることが確認できます。
Dash Cytoscapeを使って、基本的なネットワーク図を描いてみます。
[ソースコード]
1 | import dash |
[ブラウザで表示]
ノードが2つと各ノードを線でつないだ基本的なネットワーク図が表示されました。
ノードやノード間の線は選択することができ、ドラッグするとそれぞれの位置を移動することができます。
また、スクロールを行うと拡大・縮小して表示することができます。
Dash Cytoscapeとは、ネットワークの可視化を実現するためのDashコンポーネントです。
Dash Cytoscape - https://dash.plotly.com/cytoscape
以下のようなインタラクティブな可視化や操作を行うことができます
Dash Cytoscapeを使うためには、下記のコマンドを実行しインストールを行います。
[インストール]
1 | pip install dash-cytoscape==0.2.0 |
次回は、Dash Cytoscapeを使って基本的なネットワーク図の描画を行います。
Dash DAQでは、データの収集・管理を行うコンポーネントを提供しています。
スイッチや計器に似た可視化ツールが用意されており、データを変化させる管理UIを作成できます。
Dash Enterprise - https://dash.plotly.com/dash-daq
ToggleSwitchコンポーネントを使うと、ブール型のトグルスイッチを表示することができます。
初期値はvalueで設定します。(11行目)
[ソースコード]
1 | import dash |
[ブラウザで表示]
トグルスイッチが表示されました。
トグルスイッチをクリックすると、オンとオフが切り替わることを確認できます。