我正在使用DFA,我已经在点文件格式中描述了这一点。我的DFA中的一个节点有两个自循环,我最初用以下方式描述了这个循环
digraph {
rankdir=LR;
a -> a [color=blue]
a -> a [color=green]
},它在运行dot graph.gv -Tpng时生成此输出。

出于对称的原因,我希望在节点的对面有蓝色箭头和绿色箭头。我可以修改绿色箭头的headport和tailport,强制它从节点底部开始,如下所示:
digraph {
rankdir=LR;
a -> a [color=blue]
a:sw -> a:se [color=green]
}不幸的是,这产生了一个绝对不稳定的输出:

使两个箭头在节点上对称相对的正确方法是什么?
发布于 2021-11-25 16:00:02
我怀疑你对边缘布局有太多的控制能力。但是您可以尝试使用头口属性值。这里有一些例子。
示例1
digraph {
rankdir=LR;
a:n -> a [color=blue]
a:s -> a [color=green headport=center]
}编辑视图

示例2
digraph {
rankdir=LR;
a:ne -> a [color=blue]
a:sw -> a [color=green headport=center]
}编辑视图

其他布局
您也可以试验不同的布局。以下是circo布局的一些选项。
示例3
digraph {
rankdir=LR;
layout="circo"
a:n -> a:_ [color=blue headport=n]
a:s -> a:_ [color=green headport=s dir=back]
}编辑视图

例4
digraph {
rankdir=LR;
layout="circo"
a:nw -> a:w [color=blue headport=_]
a:se -> a:e [color=green headport=_]
}编辑视图

https://stackoverflow.com/questions/68531149
复制相似问题