Pyvis
前回、Pythonのネットワーク作成ライブラリPyvisでNodeとEdgeにラベルやタイトルを追加をしてみました。
今回はPyvisで最初に読み込む、Networkのオプションを色々試していきましょう。
ということで基本のプログラムはこちらです。
from pyvis.network import Network
net = Network()
net.add_node('A')
net.add_node('B')
net.add_nodes(['C', 'D', 'E'])
net.add_edge('A','B')
net.add_edge('A','C')
net.add_edges([('A','D'), ('B','D'), ('D','E')])
net.show("pyvis5-1.html")
実行結果
それでは始めていきましょう。
Edgeに矢印を表示:directed
まずはEdgeに矢印を表示する「directed」のオプションです。
矢印を表示する場合はNetworkのオプションに「directed=True」を追加します。
from pyvis.network import Network
net = Network(directed=True)
net.add_node('A')
net.add_node('B')
net.add_nodes(['C', 'D', 'E'])
net.add_edge('A','B')
net.add_edge('A','C')
net.add_edges([('A','D'), ('B','D'), ('D','E')])
net.show("pyvis5-2.html")
実行結果
矢印の表示される方向は「add_edge(‘A’,’B’)」ですと、Bに矢尻が向かう方向になります。
そのため、もし両方に矢印を表示させたい場合は、両向きにEdgeを追加します。
例えばA、Bに両向きの矢印を表示してみましょう。
from pyvis.network import Network
net = Network(directed=True)
net.add_node('A')
net.add_node('B')
net.add_nodes(['C', 'D', 'E'])
net.add_edge('A','B')
net.add_edge('B','A')
net.add_edges([('A','D'), ('B','D'), ('D','E')])
net.show("pyvis5-3.html")
実行結果
図のサイズを指定:height、width
Pyvisで出力されるネットワーク図のサイズを変更するには、Networkのオプションに「height」と「width」を追加します。
注意するのは文字列として追加し、最後に単位(px)が入っていることです。
from pyvis.network import Network
net = Network(width='500px', height='300px')
net.add_node('A')
net.add_node('B')
net.add_nodes(['C', 'D', 'E'])
net.add_edge('A','B')
net.add_edge('A','C')
net.add_edges([('A','D'), ('B','D'), ('D','E')])
net.show("pyvis5-4.html")
実行結果
背景色を変更:bgcolor
背景色を変えるにはNetworkのオプションに「bgcolor」を追加します。
from pyvis.network import Network
net = Network(bgcolor='lightgray')
net.add_node('A')
net.add_node('B')
net.add_nodes(['C', 'D', 'E'])
net.add_edge('A','B')
net.add_edge('A','C')
net.add_edges([('A','D'), ('B','D'), ('D','E')])
net.show("pyvis5-5.html")
実行結果
フォントの色の変更:font_color
フォントの色を変更するにはNetworkのオプションに「font_color」を追加します。
from pyvis.network import Network
net = Network(font_color='red')
net.add_node('A')
net.add_node('B')
net.add_nodes(['C', 'D', 'E'])
net.add_edge('A','B')
net.add_edge('A','C')
net.add_edges([('A','D'), ('B','D'), ('D','E')])
net.show("pyvis5-6.html")
実行結果
Jupyter Notebook上で表示:notebook
Jupyter Notebookを使用している方は、Jupyter Notebook上にネットワーク図を表示させたいこともあることでしょう。
その場合はNetworkのオプションに「notebook=True」を追加します。
from pyvis.network import Network
net = Network(notebook=True)
net.add_node('A')
net.add_node('B')
net.add_nodes(['C', 'D', 'E'])
net.add_edge('A','B')
net.add_edge('A','C')
net.add_edges([('A','D'), ('B','D'), ('D','E')])
net.show("pyvis5-7.html")
実行結果
先ほどの例では最後の「net.show(“pyvis5-7.html”)」によりhtmlファイルが出力されますので、そちらを開いてネットワーク図を表示させることも可能です。
まだ他にもあるかもしれませんが、とりあえず使いそうなものとしてはこんな感じでしょうか。
特にnotebookのオプションはJupyter notebookを使用されている方にとって結構有用だと思いますので、是非活用してみてください。
次回はNodeの形を色々と試していきましょう。
ではでは今回はこんな感じで。
コメント