【Python基礎】Pyvisでネットワーク図作成:Networkのオプション

  • URLをコピーしました!
目次

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の形を色々と試していきましょう。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次