Graphviz绘图-FSM状态图

Graphviz绘图 - DOT语言

  • 官网:http://www.graphviz.org/
  • 官方文档:http://www.graphviz.org/Documentation.php
  • 下载地址:http://www.graphviz.org/Download..php

Graphviz画图只需要两步。第一步创建文本文件并命令为x.dot,输入以下内容:

graph demo {
    "Browser" -- {"Chrome", "Fiefox", "Safari", "..."}
}

第二步,使用命令将文本内容转换为图片。

dot demo.dot -T png -o demo.png

-T表示输出类型,可以指定jpg、gif、svg等等,-o指定输出文件名,不指定则输出到标准输出上。执行上面命令后不出意外则可以看到如下效果。

上面是用dot命令来生产,也可以用Graphviz中包含的其他命令来处理dot文本,比如用下面命令渲染出来的图片排列方式则不一样。

neato demo.dot -T png -o demo.png

eg


# https://hifpga.com/fsm/
#状态机示例
digraph fsm {
"a" -> "a" [label= "0/0"]
"a" -> "b" [label= "1/0"]
"b" -> "c" [label= "0/0"]
"b" -> "d" [label= "1/0"]
"c" -> "a" [label= "0/0"]
"c" -> "d" [label= "1/0"]
"d" -> "e" [label= "0/0"]
"d" -> "f" [label= "1/1"]
"e" -> "a" [label= "0/0"]
"e" -> "f" [label= "1/1"]
"f" -> "f" [label= "1/1"]
"f" -> "g" [label= "0/0"]
"g" -> "a" [label= "0/0"]
"g" -> "f" [label= "1/1"]
}

dot -Tsvg eg.dot -o eg.svg

 

circo 布局

#状态机示例
digraph fsm {
"a" -> "a" [label= "0/0"]
"a" -> "b" [label= "1/0"]
"b" -> "c" [label= "0/0"]
"b" -> "d" [label= "1/0"]
"c" -> "a" [label= "0/0"]
"c" -> "d" [label= "1/0"]
"d" -> "e" [label= "0/0"]
"d" -> "f" [label= "1/1"]
"e" -> "a" [label= "0/0"]
"e" -> "f" [label= "1/1"]
"f" -> "f" [label= "1/1"]
"f" -> "g" [label= "0/0"]
"g" -> "a" [label= "0/0"]
"g" -> "f" [label= "1/1"]
}

dot fsm.dot  -Kcirco -Tpng -o FSM_circo.png

 

posted @ 2022-10-21 19:41  大块头  阅读(493)  评论(0编辑  收藏  举报