我想渲染与以下一个相似布局的图:

wanted

我尝试了:

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"];

}

产生以下结果:(不是很好...

my

谁能告诉我最接近的解决方案? (可能完全不可能完全一样)

有帮助吗?

解决方案

我在一个晚上打电话之前就接近了:

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

结果:

closest possible graphviz output

一些评论:

  • 我最终放了 constraint=false 在所有边缘
  • 通常我喜欢使用 dir=back, ,但是当渲染时我无法使用它 -Gsplines=ortho
  • 如您所见,边缘的顺序是随机的...
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top