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

如何使用Graphviz绘制带直连顶层路径和分组子路径的决策流程图

决策栈流程图Graphviz优化说明

我有一个通用数据流结构,本质由顶层决策栈构成。每个决策会引导你在栈内上下跳转,直到栈中触发终止事件,或是抵达栈的顶端或底端。部分决策需要检查布尔条件以确定后续执行的决策。我希望能优化输出图以更清晰地展示思考流程,目前问题似乎主要出在分组/层级(rank)设置上,也可能存在其他问题。

我第一版的Graphviz代码如下,使用dot渲染后得到下图:
初始渲染效果

虽然这张图准确呈现了我要搭建的决策栈,但我希望最终效果更接近下图:
期望效果

对应的参考Graphviz代码如下:

graph decision_path {
    node [shape="rectangle"]
    edge [dir="both"]
    newrank=true
    
    Top
    d1 [label="Decision 1"]
    cd1 [label="Composite Decision 1"]
    cd2 [label="Composite Decision 2"]
    d2 [label="Decision 2"]
    d3 [label="Decision 3"]
    d4 [label="Decision 4"]
    source [label="Decision Source" style="filled" color="#EEFFEE"]
    
    Top -- d1 [dir="back"]
    d1 -- cd1
    cd1 -- cd2
    cd2 -- d2
    d2 -- d3
    d3 -- d4
    d4 -- Bottom [dir="forward"]
    
    cd1 -- source [dir="back"]
    
    subgraph {
        node [style=filled, color="#EEEEFF"]
        cd1_d1 [label="Kill"]
        cd1_d2 [label="Continue"]
        cd1_d1 -- cd1_d2 [dir="forward"]
        subgraph {
            rank=same
            node [style=filled color="#FFEEEE"]
            cd1_d1_c1 [label="Conditional 1"]
            cd1_d1 -- cd1_d1_c1 [dir="forward"]
        }
    }
    cd1 -- cd1_d1 [dir="forward"]
    
    subgraph {
        node [style=filled, color="#EEEEFF"]
        cd2_d1 [label="Continue"]
        cd2_d2 [label="Kill"]
        cd2_d1 -- cd2_d2 [dir="forward"]
        subgraph {
            rank=same
            node [style=filled color="#FFEEEE"]
            cd2_d1_c1 [label="Conditional 1"]
            cd2_d1_c2 [label="Conditional 2"]
            cd2_d1 -- cd2_d1_c1 [dir="forward"]
            cd2_d1_c1 -- cd2_d1_c2 [dir="forward"]
        }
        
    }
    cd2 -- cd2_d1 [dir="forward"]
}

内容的提问来源于stack exchange,提问作者Vince W.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:54:07