gpt4 book ai didi

layout - Graphviz:如何渲染尊重某些节点边缘连接点的图形?

转载 作者:行者123 更新时间:2023-12-02 00:05:40 25 4
gpt4 key购买 nike

我想以与以下布局类似的布局渲染图表:

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 渲染时无法使用它
  • 如您所见,边的顺序是随机的...

关于layout - Graphviz:如何渲染尊重某些节点边缘连接点的图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8318253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com