gpt4 book ai didi

如果节点之间没有边,Graphviz 将忽略等级属性

转载 作者:行者123 更新时间:2023-12-05 03:08:10 26 4
gpt4 key购买 nike

我正在使用 Graphviz 渲染一些层次结构。到目前为止,对于实现我正在寻找的目标,子图的使用并不是最佳选择。

是我想要得到的

enter image description here

(颜色代表层次结构中的不同层级,因此它们需要遵循此顺序)。为了制作这张图片,我使用了不可见链接,但这在现实世界场景中确实不是一个选项。

但是,目前这就是我得到的 enter image description here

使用这个 .dot 文件

graph {
// Global config
rankdir=BT
node [style="filled" fontcolor="white" shape="box"]
// Rank (hierarchies)
{ rank=same; 258 }
{ rank=same; 259 }
{ rank=same; 260 }
{ rank=same; 261 262 }
// Nodes
// Tasks
258 [label="John Cleese" fillcolor="#E8B04D"]
// Project Goals
259 [label="Michael Palin" fillcolor="#C0C56B"]
// Identities
260 [label="Eric Idle" fillcolor="#FF8D61"]
// Virtues
261 [label="Graham Chapman" fillcolor="crimson"]
262 [label="Terry Jones" fillcolor="crimson"]
// Edges
259 -- 260 [style="bold" color="#3790af"]
}

Graphviz 是否可以在边缘之前尊重等级?如果是这样,我将如何进行?

最佳答案

您的问题很容易通过添加一些不可见的边缘来解决,这些边缘可以使各种等级(您正确设置)按您想要的方式工作。请注意在底部附近简单添加了三个不可见的边缘:

graph {
// Global config
rankdir=BT
node [style="filled" fontcolor="white" shape="box"]
// Rank (hierarchies)
{ rank=same; 258 }
{ rank=same; 259 }
{ rank=same; 260 }
{ rank=same; 261 bl 262 }
// Nodes
// Tasks
258 [label="John Cleese" fillcolor="#E8B04D"]

// Project Goals
259 [label="Michael Palin" fillcolor="#C0C56B"]

// Identities
260 [label="Eric Idle" fillcolor="#FF8D61"]

// Virtues
261 [label="Graham Chapman" fillcolor="crimson"]
262 [label="Terry Jones" fillcolor="crimson"]

// Edges
259 -- 260 [style="bold" color="#3790af"]
258--259 [style=invis]
260--261 [style=invis]
260--262 [style=invis]
260--bl [style=invis]

bl [style=invis label="" height=0, width=0]

}

我还在中心添加了一个不可见的平衡节点,bl 以帮助更好地使图形居中。

enter image description here

关于如果节点之间没有边,Graphviz 将忽略等级属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45846207/

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