■ はじめに
https://dk521123.hatenablog.com/entry/2023/06/14/174104
で扱った DOT言語 に関して、ちょこちょこまとめる
目次
【1】学習サイト 【2】構文 1)テンプレート 【3】用語整理 1)Node / Edge 2)GraphViz 【4】サンプル
【1】学習サイト
* DOT言語を学ぶなら、以下のサイトなどを参照。
https://hackmd.io/@maxy8821/HkO3cjzQr
https://stabucky.com/wp/archives/4191
* 以下の「graphviz の公式ドキュメント」と「Playground」で 触りながら結構を見て、学ぶとよさげ。
graphviz の公式ドキュメント
https://graphviz.org/doc/info/lang.html
Playground
http://magjac.com/graphviz-visual-editor/
【2】構文
digraph/graph グラフ名 { graph [属性="値"; …]; node [属性="値"; …]; edge [属性="値"; …]; "ノードA"->"ノードB" [属性 = "値"; …]; "ノードA"--"ノードB" [属性 = "値"; …]; : }
1)テンプレート
// 有向グラフ (矢印ありグラフ) digraph <グラフ名(オプション)> { #<ここに書いていく> } // 無向グラフ (矢印なしグラフ) graph <グラフ名(オプション)> { # <ここに書いていく> }
【3】用語整理
1)Node / Edge
* Node = 節 * Edge = 線、辺 => 例を見たら、一発で分かる
例
// a/b/c/d が、Node(節) // -> が、Edge (線) digraph { a->b; a->c; a->d; }
2)GraphViz
* DOT言語で記述されたグラフ構造を描画してくれるオープンソース
【4】サンプル
* 以下をコピペで、PlayGrand上に張り付けながら 弄るとイメージできるかも。
http://magjac.com/graphviz-visual-editor/
// 極力載せてみる digraph { label="Hello World" rankdir="LR"; graph [fontsize=10]; node [fontsize=15, shape=box, style=rounded]; edge [fontsize=20]; subgraph cluster0 { a -> b [color = red, style="dotted"] } subgraph cluster1 { A -> B [label="sample"] } default1; default2; ellipse[shape="ellipse"]; box[shape="box"]; circle[shape="circle"]; record[shape="record"]; plaintext[shape="plaintext"]; point[shape="point"]; c1[color="red"]; c2[style="filled",color="blue"]; c3[color="green"]; default1 -> default2; }
参考文献
http://www.yosbits.com/wordpress/?page_id=4845
https://ykng0.hatenablog.com/entry/2016/07/11/140720
https://qiita.com/kanetai/items/16d17efe681e3edfec3d
関連記事
DOT言語 ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/06/16/000531
DOT言語 ~ 環境設定編 ~
https://dk521123.hatenablog.com/entry/2023/07/18/120407
DOT言語表示ツール ~ d3-graphviz ~
https://dk521123.hatenablog.com/entry/2023/06/18/102448
Python + DOT言語で図作成するには
https://dk521123.hatenablog.com/entry/2023/06/14/174104
Python で d3-graphviz を使ってアニメーション表示ツールを作る
https://dk521123.hatenablog.com/entry/2023/06/24/000000
sqlparser-rs ~ SQL Parser for Rust ~
https://dk521123.hatenablog.com/entry/2023/06/12/000000