pyvisで可視化したネットワークにおいてポップアップでテキストを表示する

以前紹介したpyvisの話です。
参考: pyvisでネットワーク可視化

最近久しぶりに使ったのですが、その時はそこそこ長いテキストをノードし、類似度によってエッジを貼るようなグラフを構築し可視化しました。

ノードに全文表示すると長すぎて視認性が全くなくなったので、ラベルにテキストのidや序盤の数文字を表示させていて、全文は別の場所で参照する、とやっていたのですがこれが非常に不便でした。

そこで、何かしら対応策ないかなと思っていたのですが、マウスオーバーした際にポップアップで表示するテキストを別途設定できることがわかりました。

設定自体も非常に簡単で、title という属性を指定するだけでした。

参考: Documentation — pyvis 0.1.3.1 documentation

これはノードだけでなくエッジに対しても設定できます。やってみましょう。

from pyvis.network import Network


# ネットワークのインスタンス生成
network = Network(
    notebook=True,  # これをTrueにしておくとjupyter上で結果が見れる
    cdn_resources='in_line',
    bgcolor='#ffffff',  # 背景色。デフォルト "#ffffff"
)

network.add_node(n_id=1, label="ラベル1", shape="box", title="ポップアップさせたいテキスト1")
network.add_node(n_id=2, label="ラベル2", shape="circle", title="ポップアップさせたいテキスト2")
network.add_edge(1, 2, label="辺のラベル", title="辺のポップアップ")

network.show("pyvis_sample1.html")

これで作成されたネットワーク図は、ノードやエッジにマウスオーバーした際にポップアップが表示されます。

簡単で便利ですね。