XGBoostのplotはGraphvizというライブラリを使っているらしい。
ちょっと触ってみた。
環境
以下の環境で実行しました。
- macOS High Sierra 10.13.6(17G4015)
- anaconda3-5.3.0
- Python 3.7.0
準備
予め必要なパッケージをインストールしておく
$ brew list graphviz
$ pip install graphviz
パッケージがインストールされていることを確認する
!brew list | grep graphviz
!dot -V
!pip list | grep graphviz
graphviz
dot - graphviz version 2.40.1 (20161225.0304)
graphviz 0.10.1
ライブラリが利用できることを確認する
import graphviz
display(graphviz.__version__)
'0.10.1'
実行
# ライブラリ読み込み
from graphviz import Digraph
# インスタンス作成
dot = Digraph()
# ノードの属性を設定
dot.attr('node', shape='circle')
# ノードを登録
dot.node('P', 'P')
dot.node('D', 'D')
dot.node('C', 'C')
dot.node('A', 'A')
# エッジの属性を登録
dot.attr('edge', arrowsize='2')
# エッジを登録
dot.edge('P', 'D')
dot.edge('D', 'C')
dot.edge('C', 'A')
dot.edge('A', 'P')
# 生成されたソースコードを確認
print(dot)
digraph {
node [shape=circle]
P [label=P]
D [label=D]
C [label=C]
A [label=A]
edge [arrowsize=2]
P -> D
D -> C
C -> A
A -> P
}
# 出力フォーマットを指定
dot.engine = 'circo'
dot.filename = 'PDCA'
dot.format = 'png'
dot.render(view = True)
'PDCA.png'