【Pyvis】NodeとEdgeの追加[Python]

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

Pyvis

前回、Python作成ライブラリNetworkXの問題点を確認し、Pyvisをとりあえず試してみました。

今回からはPyvisの使い方を学んでいきますが、とりあえずはNodeとEdgeの追加の方法を勉強していきます。

Nodeとは何だ?Edgeとは何だ?という方はこちらの記事をどうぞ。

前回、NodeとEdgeはNetworkXで追加したものを、Pyvisに読み込ませましたが、今回はPyvisで追加する方法から試していきます。

それでは始めていきましょう。

NodeとEdgeを一つずつ追加する方法

まずはNodeとEdgeを一つずつ追加する方法です。

これはNetworkXの時と同じく、それぞれ「add_node」と「add_edge」で追加できます。

つまりこんな感じです。

from pyvis.network import Network

net = Network()

net.add_node('A')
net.add_node('B')
net.add_node('C')
net.add_node('D')
net.add_node('E')

net.add_edge('A','B')
net.add_edge('A','C')
net.add_edge('A','D')
net.add_edge('B','D')
net.add_edge('D','E')

net.show("pyvis2-1.html")

最初に「from pyvis.network import Network」でPyvisの「Network」のインポートをしています。

そして「net = Network()」でネットワークの新規作成です。

ちなみにNetworkXでは「G = nx.graph()」としていました。

その後、「add_node」と「add_edge」でNodeとEdgeの追加をしています。

これはNetworkXと同じですね。

最後に「net.show(“出力するHTML名”)」でネットワークのHTMLファイルを出力することができます。

出てきたHTMLファイルを開くとこんな感じのネットワーク図が出てきます。

基本的にはこんな感じで使っていきます。

複数のNode、複数のEdgeを一括で追加する方法

次にNodeとEdgeを一括で追加する方法です。

NetworkXの場合、NodeとEdgeを一括で追加するには「add_nodes_from([追加するNodeのリスト])」、Edgeでは「add_edges_from(追加するエッジのタプルのリスト)」で追加していました。

Pyvisの場合、「add_nodes(追加するNodeのリスト)」、「add_edges(追加するエッジのタプルのリスト)」で複数のNode、複数のEdgeを一括で追加することができます。

from pyvis.network import Network

net = Network()

net.add_nodes(['A','B','C','D','E'])

net.add_edges([('A','B'),('A','C'),('A','D'),('B','D'),('D','E')])

net.show("pyvis2-2.html")

実行結果

NetworkXのネットワークデータから読み込む

次に前回やった方法のおさらいです。

PyvisではNetworkXで作成したネットワークデータからも読み込み、ネットワーク図を作成することができます。

その場合は「from_nx(NetworkXで作成したネットワーク)」です。

import networkx as nx
from pyvis.network import Network

G = nx.Graph()

G.add_node('A')
G.add_node('B')
G.add_node('C')
G.add_node('D')
G.add_node('E')

G.add_edge('A','B')
G.add_edge('A','C')
G.add_edge('A','D')
G.add_edge('B','D')
G.add_edge('D','E')

net = Network()
net.from_nx(G)
net.show("pyvis2-3.html")

実行結果

PyvisでNode、Edgeを追加した図よりも、Nodeのサイズが小さく、Edgeが長くなっている感じがしますが、それでもちゃんとネットワーク図が作成できました。

これでPyvisでもNodeとEdgeが追加できるようになりました。

次回はPyvisでのNodeとEdgeの色やサイズを変える方法を試していきます。

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

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

コメント

コメントする

目次