【DOT】DOT言語 ~ 環境設定編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2023/06/15/004815

の続き。

仕事で「DOT言語の環境設定に関して情報展開してほしい」と言われて
展開しようと思ったが、意外と全然まとまってなかったので
今回、整理して、まとめておく。

目次

【1】GraphViz
【2】設定手順
 1)Linuxの場合
 2)Windowsの場合
【3】Hello world
 1)サンプル
 2)コマンド例
【4】トラブル
 1)エラー「Error: xxx.dot: syntax error in line 2 near '->'」が表示

【1】GraphViz

* DOT言語で記述されたグラフ構造を描画してくれるオープンソース
 => このライブラリを入れるのがスタンダードな方法

【2】設定手順

* Linux/Windowsどちらもサポート

https://www.graphviz.org/download/

1)Linuxの場合

# To install
sudo apt install graphviz

2)Windowsの場合

https://www.kkaneko.jp/tools/win/graphviz.html

を参考にやるといいかも。

https://www.graphviz.org/download/

から、インストーラ(.msiファイル)をダウンロードし
.msi ファイルを実行する()

【3】Hello world

* コマンドベースで実行する

1)サンプル

input.dot

digraph {
  a -> b -> c;
}

2)コマンド例

# 例1:DOT言語から、SVG画像を出力する
dot -Tsvg input.dot > output.svg

# 例2:PDF化
dot -Tpdf input.dot > output.pdf

【4】トラブル

1)エラー「Error: xxx.dot: syntax error in line 2 near '->'」が表示

以下サンプルを変更しようとしたところ、
エラー「Error: xxx.dot: syntax error in line 2 near '->'」が表示。

サンプル

graph {
  a -> b -> c;
}

エラー内容

$ dot -Tsvg input.dot > output.svg
Error: input.dot: syntax error in line 2 near '->'

原因

冒頭に「graph(無向グラフ)」を指定しているにも関わらず
'->' を指定しているため。
~~~~
 + graph:無向グラフ(矢印なし)
 + digraph:有向グラフ(矢印あり)
~~~~

解決案

# 無向グラフの場合
graph {
  a -- b -- c;
}

# 有向グラフの場合は、
# 【3】Hello worldの1)サンプルを参照

関連記事

DOT言語 ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/06/15/004815
DOT言語 ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/06/16/000531