4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PyGraphvizをWindows10にインストールする方法(2022年版)

Posted at

PyGraphvizをWindowsにインストールする手順が少し複雑だったので簡単にまとめておきます.

PyGraphvizとは

  • GraphvizをPythonで使うためのインターフェース
  • Graphvizの豊富なグラフ描画レイアウトをNetworkXと連携できて便利
  • PyGraphvizの公式サイト

NetworkXでは座標指定をしないと位置関係が理解しづらいグラフでも,
PyGraphvizを使うと座標指定をすることなく,見やすく描画することができます!

NetworkX のみ

PyGraphviz
image.png

インストール手順

目次の順番にインストールをしていきます.

環境

以下の環境で実行しました.

  • Windows 10
  • Python 3.9.7
  • Graphviz 6.0.2
  • PyGraphviz 1.10

用意するもの

  • Python(バージョン 3.8, 3.9, 3.10)
  • Graphviz (バージョン 2.42 以降)
  • Microsoft C++ Build Tools(PyGraphvizを動かすためにC/C++のコンパイラが必要)

1. Graphviz

Graphviz公式のダウンロードページへアクセス

Windows用の項目でgraphviz-6.0.2 (64-bit) EXE installer [sha256] をダウンロード.
          ↑このリンクからでもダウンロードできます.
image.png
1.インストールできたら実行します.指示に従いそのまま進んでいきます.
image.png
2.ここでユーザー環境変数にGraphvizのパスを通しておくと後が楽になります.
image.png
3.インストール先のフォルダを指定します.
ここで指定したパス C:\Program Files\Graphviz を覚えておきます.
image.png
4.インストール完了
image.png
これでGraphvizのインストールは完了です.

2. Microsoft C++ Build Tools

次にPyGraphvizを動かすために,C++のコンパイラをダウンロードします.

ダウンロードが開始されます.

実行するとこのような画面になります.

インストールを待ちます.

インストーラが起動されるとこの画面が表示されるので,以下のオプションでインストールをします.
スクリーンショット 2022-10-27 143315.png
ダウンロードが始まります.
MicrosoftTeams-image (4).png
以上でC++コンパイラのインストールは終了です.

3. PyGraphvizをインストール

PyGraphviz公式ドキュメントに従って,このようなコマンドでインストールします.

$ pip install --global-option=build_ext --global-option="-IC:\Program Files\Graphviz\include" --global-option="-LC:\Program Files\Graphviz\lib" pygraphviz

オプションでGraphvizのインストール先を指定し,Graphvizを読み込んでからPyGraphvizをインストールするコマンドです.
今回はC:\Program Files\GraphvizにGraphvizをインストールした場合を想定しているので,各自の環境に応じて

  • IC:\Program Files\Graphviz\include
  • LC:\Program Files\Graphviz\lib

の部分は変更する必要があります.
※1回目の実行で上手くいかない場合がありますが,もう一度実行するとSuccessfully installed pygraphviz-1.10となります.

インストールできたかの確認

$ pip show pygraphviz
----------------------------------------------------
Name: pygraphviz
Version: 1.10
Summary: Python interface to Graphviz
Home-page: http://pygraphviz.github.io
Author: Aric Hagberg
Author-email: aric.hagberg@gmail.com
License: BSD
Location: c:\users\nabe6\anaconda3\lib\site-packages
Requires: 
Required-by:

バージョン1.10のPyGraphvizがインストールされていることが確認できました.
これでPyGraphvizのインストールは完了です.

4. 実際にNetworkXと連携してみる

NetworkXで作ったグラフを実際にpygraphvizで書き直してみます.

グラフ作成とライブラリの準備

import networkx as nx
import random
from networkx.drawing.nx_agraph import graphviz_layout
random.seed(0) # seed値を0に固定
G = nx.DiGraph([(1,2),(1,3),(2,4),(2,5),(3,6)]) # 1から2,1から3へのエッジとなるような有向グラフの作成

Networkxのみで描画した場合

networkx
nx.draw(G,with_labels=True)

PyGraphvizで書き直した場合

pygraphviz
pos = graphviz_layout(G,prog="dot") # 描画レイアウトの指定 Graphvizの"dot"というレイアウトを使用
nx.draw(G,pos=pos,with_labels=True) # pos=posでGraphvizのレイアウト通りのグラフを描画

image.png
prog="dot"はGraphvizの描画レイアウトで,有向グラフを階層的に描画することができます.
"dot"の他にも,GraphvizにはNetworkXだけでは描けないような豊富な描画レイアウトが揃っているので,PyGraphvizを使ってきれいなグラフを描く際の参考になればいいなと思います.

  • 他のレイアウトの公式ドキュメントはこちら

参考資料

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?