Graphvizメモ
Suns & Moon Laboratory
dev/graphviz.html
https://graphviz.org/docs/attr-types/color/
https://graphviz.org/doc/info/colors.html 色名称
https://graphviz.org/docs/attrs/labelloc/
https://graphviz.org/doc/info/shapes.html Shapeの形
https://graphviz.org/docs/attr-types/style/ 線種
https://graphviz.org/docs/edges/
https://graphviz.org/docs/attr-types/arrowType/
https://graphviz.org/docs/attrs/weight/ エッジの重み付け
例1
dotファイルの例
example1.dot
digraph example1 {
"ayame" -> "asagao";
"ayame" -> "himawari";
"ayame" -> "gold";
"asagao" -> "silver";
"asagao" -> "black";
"black" -> "silver";
"black" -> "bronze";
"black" -> "cool";
"gold" -> "asagao";
"gold" -> "hot";
"hot" [style=bold]
"cool" [style=bold]
"himawari" [style=bold]
"silver" [style=bold]
"bronze" [style=bold]
}
PNGに変換して、ペイントで開く。
example1.bat
dot -Tpng -o example1.png example1.dot
%windir%\system32\mspaint.exe example1.png
例2 Nodeに画像
digraph NarrowCorsaMod{
CORSAN[image="stop.jpg", fontcolor=white, labelloc=t, label="SSSM.NarrowCorsa", shape=plaintext];
UnionV1[image="sbar.jpg", fontcolor=white, labelloc=t, label="UNIOV V1", shape="box"];
UnionV2[image="sbar2.jpg", fontcolor=white, labelloc=t, label="UNIOV V2", shape="box"];
UnionV4[image="sunion4.jpg", fontcolor=white, labelloc=t, label="UNIOV V4", shape="box"];
UnionV5[image="sv5a1.jpg", fontcolor=white, labelloc=t, label="UNIOV V5", shape="box"];
UnionV6[image="sug1.jpg", fontcolor=white, labelloc=t, label="UNIOV V6 GEARED", shape="box"];
fontcolor="White"
CORSAN -> UnionV1;
CORSAN -> UnionV4;
UnionV1 -> UnionV2;
UnionV2 -> UnionV6;
UnionV4 -> UnionV5;
}
簡素なフロー
simple_flow.dot
digraph NarrowCorsaMod{
CORSAN -> UnionV1[label="Fix"];
CORSAN -> UnionV4[label="Movable+Tenting"];
}
simple_flow.bat
dot -Tsvg -o simple_flow.svg simple_flow.dot
inkscape.com --export-type="png" --export-width="1024" "simple_flow.svg"
magick simple_flow.png -resize "256x256>" ssimple_flow.png
simple_flow.svg
simple_flow.png
画像フロー
image_flow.dot
digraph NarrowCorsaMod{
node[
fontcolor=white,
labelloc=t,
shape=box
];
CORSAN[class="drop_shadow" image="corsan.jpg", label="SSSM.NarrowCorsa"];
UnionV1[class="drop_shadow" image="unionv1.jpg", fontcolor=white, labelloc=t, label="UNION V1"];
UnionV4[class="drop_shadow" image="unionv4.jpg", label="UNION V4"];
CORSAN -> UnionV1[label="Fix"];
CORSAN -> UnionV4[label="Movable+Tenting"];
}
image_flow.bat
dot -Tsvg -o image_flow.svg image_flow.dot
inkscape.com --export-type="png" --export-width="1024" "image_flow.svg"
magick image_flow.png -resize "256x256>" simage_flow.png
image_flow.png
image_flow.svg
★右クリックで開くと画像が見えます
画像フローに後処理で影を付ける
nodeは黒の影をつけてフィルタでぼかし
edgeは白縁をつける
dotは、画像フローと同じ
iamge_flow_shadow.bat
★svg_deco.exeは公開予定。現状未公開です
dot -Tsvg -o image_flow.svg image_flow.dot
svg_deco.exe image_flow.svg image_flow_shadow.svg
inkscape.com --export-type="png" --export-width="1024" "image_flow_shadow.svg"
magick image_flow_shadow.png -resize "256x256>" simage_flow_shadow.png
image_flow_shadow.png
image_flow_shadow.svg
★右クリックで開くと画像が見えます
svgのfeDropShadowで影を付ける
SVGのフィルターで影を付けるのもありなのですが、Chrome,EdgeはよくてもInkscapeが対応してない...
<filter id="drop_shadow">
<feDropShadow dx="0" dy="0" stdDeviation="1" flood-color="black"></feDropShadow>
</filter>
image_flow_dropshadow.svg
★右クリックで開くと画像が見えます
バージョンによるレンダリングの差
2023-07-04
単純にバージョンによる差かと思いきや、知人の環境でGraphviz8.0.5(Android+Termux)ではラベルとエッジが重ならない。
バージョンによっても差があるし、バージョンが同じでも差があるという感じ。
Android + Termux + Graphviz8.0.5
Ubuntu22.04.2 LTS + Graphviz 2.43.0
Installed by apt.
Ubuntu22.04.2 LTS + Graphviz 8.0.5
Installed from source.
Win10 + Graphviz 8.0.5
ノードをまとめるsubgraph
subgraphの名前は、"cluster_"にしないと枠線がつかない。
digraph tempmeter{
graph [fontname = "Meiryo"];
node [fontname = "Meiryo Bold"];
edge [fontname = "Meiryo"];
storage[label="保存と転送\nstorage.exe" shape=box]
XIAO1[label="XIAO RP2040" shape=box3d]
TEMP1[label="気温" shape=invhouse]
subgraph cluster_temp {
label = "温度測定"
labelloc = "t"
labeljust = "l"
TEMP1 -> XIAO1
}
XIAO1 -> storage
}
日本語
Graphvizのコマンドで日本語が文字化けして困った(windows10)
digraph font_test {
graph [fontname = "Meiryo"];
node [fontname = "Meiryo Bold"];
edge [fontname = "Meiryo"];
Japanese Supplemental Fonts - Windows10
end.
2024-08-14 12:04:10 32400