【Python】動的なネットワーク図を作成できるPyvisのインストール

プログラミング

Pythonだけで動的なネットワーク図を作成できるのを知っていますか?
Pyvisを使えば、JavaScriptのスキルがなくても動的コンテンツを作成できます。

本記事の内容

  • Pyvisとは?
  • Pyvisのシステム要件
  • Pyvisのインストール
  • Pyvisの動作確認

それでは、上記に沿って解説していきます。

Pyvisとは?

Pyvisとは、ネットワーク図を作成するPythonライブラリです。
正確には、ネットワーク図を表示するhtmlファイルを作成します。

htmlファイルは、次のようなコンテンツになります。
このコンテンツは、拡大縮小・移動が可能なネットワーク図です。

このhtmlファイルには、 次のような記述があります。

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.16.1/vis-network.min.js"> </script>

この記述により、vis.jsを利用していることがわかります。

vis.js公式
https://visjs.org/

vis.jsは、ネットワーク図を表示するJavaScriptライブラリです。
JavaScriptを利用しているから、動的なコンテンツが実現できます。

よって、Pyvisが直接動的なネットワーク図を作成しているわけではありません。
Pyvisは、動的コンテンツを実現するhtml(js読み込み、jsonの表示)を作成しているだけです。

Pyvisのイメージは、つかめたでしょうか?
スキル的にPythonだけ完結できるのが、Pyvisを使う利点になります。

私は、JavaScript歴はかなり長いです。
スキル的には、JavaScriptの利用には全く問題ありません。

でも、Pyvisは便利だと感じます。
Pythonでjsonを出力して、それをajaxで読み込む手間がなくなりますからね。

その意味では、Pyvisは多くの方面で需要があるライブラリでしょう。
例えば、JupyterLab(Jupyter Notebook)上でネットワーク図を使ったプレゼンが可能になります。

JupyterLabについては、次の記事で説明しています。

以上、Pyvisの説明でした。
次は、Pyvisのシステム要件を確認します。

Pyvisのシステム要件

現時点(2021年7月)でのPyvisの最新バージョンは、0.1.9となります。
この最新バージョンは、2021年3月3日にリリースされています。

GitHubなどの公式ページには、サポートOSの記載はありません。
しかし、サポートOSに関しては以下を含むクロスプラットフォーム対応のはずです。

  • Windows
  • macOS
  • Linux

ソースを見る限り、環境(OS)依存の記述はありません。
実際に、WindowsとLinux(Ubuntu)で検証しました。
Linuxで動けば、基本的にはmacOSも問題ないはずです。

また、サポート対象となるPythonのバージョンに関しても同様です。
特に記述がありません。

このような場合は、依存パッケージのサポート状況を確認しましょう。
Pyvisが依存しているパッケージは以下です。

  • networkx
  • jinja2
  • ipython
  • jsonpickle

上記パッケージのサポート状況を見ると、Python 3.6以降であれば問題なさそうです。
また、そこそこ大きなライブラリに依存していることがわかります。

networkxについては、次の記事で説明しています。

jinja2については、次の記事でまとめています。

バージョンに話を戻すと、ここではPython 3.6以降をおススメしておきます。
これは、Pythonの公式開発サイクルに準じてもいます。

バージョンリリース日サポート期限
3.62016年12月23日2021年12月
3.72018年6月27日2023年6月
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月

上記は、Pythonの公式開発サイクルです。
このサイクルに準じていれば、サポート状況として十分でしょう。

なお、私は以下のバージョンのPythonで検証しています。

>python -V
Python 3.9.5

以上、Pyvisのシステム要件の説明でした。
次は、Pyvisをインストールしていきます。

Pyvisのインストール

まずは、現状のインストール済みパッケージを確認しておきます。

>pip list
Package    Version
---------- -------
pip        21.1.3
setuptools 57.0.0

次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。

python -m pip install --upgrade pip setuptools

では、Pyvisのインストールです。
Pyvisのインストールは、以下のコマンドとなります。

pip install pyvis

インストールは、しばらく時間がかかります。
では、どんなパッケージがインストールされたのかを確認しましょう。

>pip list
Package           Version
----------------- -------
backcall          0.2.0
colorama          0.4.4
decorator         4.4.2
ipython           7.25.0
ipython-genutils  0.2.0
jedi              0.18.0
Jinja2            3.0.1
jsonpickle        2.0.0
MarkupSafe        2.0.1
matplotlib-inline 0.1.2
networkx          2.5.1
parso             0.8.2
pickleshare       0.7.5
pip               21.1.3
prompt-toolkit    3.0.19
Pygments          2.9.0
pyvis             0.1.9
setuptools        57.0.0
traitlets         5.0.5
wcwidth           0.2.5

かなりの数のパッケージが、インストールされました。
これだけ多くのパッケージと依存関係があれば、導入が容易とは言えません。

インストールに失敗した場合や環境を汚したくない場合は、仮想環境を利用しましょう。
仮想環境に関しては、次の記事で解説しています。

仮想環境を知らない人がいたら、伝えておきます。
仮想環境という言葉にビビる必要なんてありません。
Pythonの標準機能により、簡単に仮想環境を構築できます。

個人的には、Pyvisは仮想環境へのインストールをおススメします。

以上、Pyvisのインストールについて説明しました。
最後に、Pyvisの動作確認を行います。

Pyvisの動作確認

公式のサンプルを利用しましょう。

from pyvis.network import Network

g = Network()
g.add_node(0)
g.add_node(1)
g.add_edge(0, 1)
g.show("basic.html")

上記コードを実行すると、同一フォルダ上に「basic.html」が保存されます。
同時に、ブラウザが起動することがあります。

ただし、これはブラウザが対応している場合です。
表示されているのは、「basic.html」となります。

上記のネットワーク図が確認できたら、Pyvisの動作確認は成功です。

以上、Pyvisの動作確認についての説明でした。

タイトルとURLをコピーしました