gpt4 book ai didi

graphviz - 在graphviz上设置节点方向

转载 作者:行者123 更新时间:2023-12-04 17:56:00 24 4
gpt4 key购买 nike

假设这段代码使用了neato:

graph sample {
layout=neato
overlap=false
splines=true
tailclip=false
headclip=false
A -- I
A -- J
A -- B
A -- H
A -- E
A -- K
B -- D
B -- C
B -- L
C -- M
C -- N
C -- O
D -- P
D -- Q
E -- R
F -- A
G -- F
H -- J
}

这给了我们这张图:

neato diagram

我需要的是放置一个节点 X ,总是固定在他的父节点以南的位置。即如果我把另一个关系 A -- X , X应始终从 A 向南放置.而且我真的不在乎其他一切的结局。

我查看了 pos属性,但它似乎不是解决方案,因为 X不是真的在一个固定的位置上,而是在一个相对于他的关系的位置上。

还有 tailportheadport ,但它们只定义边缘从哪里出来/从哪里出来,但并不真正影响节点的方向。

更新

使事情更清晰的附加图像:

x should be south from his parent

我不需要neato,但我不希望图形看起来像UD或LR点树,我不希望它是线性排序的。 circo、fdp、sfdp、twopi 也不错。

最佳答案

neato 程序支持多种模式,其中一种模式可能可以满足您的需求。特别是,如果您设置 mode=ipsep,您可以指定在布局期间遵守的点状约束。例如,我拿你的图并使用图属性

mode=ipsep
diredgeconstraints=true
levelsgap=0.5

第一个打开 ipsep 模式,第二个告诉模型支持有向边,如点,
最后一个指定分离的强度。然后我将边缘目录属性设置为无
edge[dir=none]

并添加一条边 A -- X [dir=1]

dir=1 表示这条边应该引起方向约束。如果我然后运行neato,我会得到附加的图片。

neato layout

Graphviz 属性文档 http://www.graphviz.org/content/attrs提供有关这些属性的更多信息。

关于graphviz - 在graphviz上设置节点方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8809518/

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