You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GraphViz strict图中,同节点间不同属性的多条边能否共存?

GraphViz Strict图里能不能存多条属性不同的边?

明确答案:不行

GraphViz的strict模式(不管是strict digraph还是strict graph)的核心规则就是:同方向的两个节点之间,不管边的属性(比如label、样式)有多不一样,都只会保留一条边。它判断"重复边"只看起点、终点和方向(针对有向图),完全不考虑边的属性差异。

你的测试代码为啥只出一条边

你写的这段测试代码:

Strict Digraph G {
   a -> b [label = edge1]
   a -> b [label = edge2]
   a -> b
   a -> b
   a -> b [label = edge1]
} 

所有a -> b的边在strict模式下都会被自动合并,最终只会留下一条边(具体留哪条取决于解析顺序,但结果都是单条),所以你看到的单条边是符合strict规则的正常结果。

要实现预期效果该怎么做

如果想得到2个节点、3条不同属性的边(带label=edge1、label=edge2、无label),直接删掉strict关键词用普通有向图即可:

Digraph G {
   a -> b [label = edge1]
   a -> b [label = edge2]
   a -> b
} 

这样GraphViz就会保留这三条属性不同的边,生成你预期的图。

内容的提问来源于stack exchange,提问作者Pranav Aggarwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 19:55:17