Layout Graphviz:如何呈现关于特定节点边连接点的图形?
我希望以与以下图形类似的布局渲染图形: 我试过这个:Layout Graphviz:如何呈现关于特定节点边连接点的图形?,layout,graphviz,graph-drawing,Layout,Graphviz,Graph Drawing,我希望以与以下图形类似的布局渲染图形: 我试过这个: digraph EDP { graph [colorscheme=paired12]; node [label="\N", shape=box, style="rounded,filled", colorscheme=paired12, color=8, fillcolor=7, width="1.2", fontname="Arial narrow", fontsize=12]; edge [colorscheme=paire
digraph EDP
{
graph [colorscheme=paired12];
node [label="\N", shape=box, style="rounded,filled", colorscheme=paired12, color=8, fillcolor=7, width="1.2", fontname="Arial narrow", fontsize=12];
edge [colorscheme=paired12, color=8, fontsize=11, fontname="Arial narrow"];
src [label="Source"];
dst [label="Destination"];
filter [label="Filter"];
src -> dst [label="Encoding process"];
src -> filter [label="a"];
filter -> dst [label="b"];
src -> filter [dir=back, label=c];
filter -> dst [dir=back, label=d];
src -> dst [dir=back, label="Decoding process"];
}
这产生了以下结果:(不是很好
有人能给我看一下最接近的解决方案吗?(可能不可能完全相同)在我结束前,尽可能接近:
digraph EDP
{
graph [colorscheme=paired12];
node [label="\N", shape=box, style="rounded,filled", colorscheme=paired12, color=8, fillcolor=7, width="1.2", fontname="Arial narrow", fontsize=12];
edge [colorscheme=paired12, color=8, fontsize=11, fontname="Arial narrow"];
src [width=3.5, label="Source"];
dst [width=3.5, label="Destination"];
filter [label="Filter"];
edge[constraint=false];
src -> dst [label="Encoding\nprocess"];
src -> filter [label="a"];
filter -> dst [label="b"];
dst -> filter [label="c"];
filter -> src [label="d"];
dst -> src [label="Decoding\nprocess"];
edge[style=invis, constraint=true];
src->filter->dst;
}
将图形另存为edp.gv
,并使用
dot -Gsplines=none edp.gv | neato -n -Gsplines=ortho -Tpng -o edp.png
结果:
一些评论:
- 最后,我在所有边上放置了
,并添加了不可见边以使三个节点居中constraint=false
- 通常我喜欢使用
,但在使用dir=back
进行渲染时,我无法使用此选项-Gsplines=ortho
- 如您所见,边的顺序是随机的
-n
标志告诉neato不要计算节点的位置(它们是按点计算的)。