用户工具

站点工具


01-基础学习:课程:编译原理:graphviz:节点排序技巧

Graphviz节点排序技巧

使用子图和rankdir , rank指令可以指定部分节点排序。
下图是没有使用这些指令的代码:

digraph finite_state_machine {
    size="18,10"
    node [shape = doublecircle]; 8;
	node [shape = circle];0;
    node [shape = plaintext];
	"" ->0 [label ="start"];
	node [shape = circle];
	0->1 [label = "a"];
	2->3 [label = "a"];
	4->5 [label = "b"];
	3->6 [label = "ε"];
	5->6 [label = "ε"];
	1->2 [label = "ε"];
	1->4 [label = "ε"];
	6->0 [label = "ε"];
	6->7 [label = "ε"];
	7->8 [label = "a"];
}

显示效果:


使用子图和rankdir ,rank代码:

digraph finite_state_machine {
	rank = name;0;1;
	rankdir = LR;
    size="18,10"
    node [shape = doublecircle]; 8;
	node [shape = circle];0;
    node [shape = plaintext];
	"" ->0 [label ="start"];
	node [shape = circle];
	0->1 [label = "a"];
	subgraph a{
		2->3 [label = "a"];
		4->5 [label = "b"];
		3->6 [label = "ε"];
		5->6 [label = "ε"];
	}
	1->2 [label = "ε"];
	1->4 [label = "ε"];
	6->0 [label = "ε"];
	6->7 [label = "ε"];
	7->8 [label = "a"];
}

期中rankdir=LR;表示从左至右,rank排序,效果:


在dokuwikiwiki上使用plot插件需要注意:

  • <plot ></plot>开始和结尾要有换行\\
  • </plot>之前可能需要一个回车换行
01-基础学习/课程/编译原理/graphviz/节点排序技巧.txt · 最后更改: 2020/04/07 06:34 由 annhe