首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图中的正交边布局

图中的正交边布局
EN

Stack Overflow用户
提问于 2018-03-01 15:39:54
回答 2查看 1.6K关注 0票数 2

我尝试使用graphviz生成正交图:

代码语言:javascript
复制
graph G {
    layout=neato
    splines=ortho

    A1 [ pos="1,1!" ]
    A2 [ pos="2,1!" ]
    A3 [ pos="3,1!" ]
    A4 [ pos="4,1!" ]
    Ae [ pos="5,1!" style=invis]

    B1 [ pos="6,6!" ]
    B2 [ pos="6,5!" ]
    B3 [ pos="6,4!" ]
    B4 [ pos="6,3!" ]

    C1 [ pos="1,8!" ]
    C2 [ pos="2,8!" ]
    C3 [ pos="3,8!" ]
    C4 [ pos="4,8!" ]

    A1 -- C1
    A2 -- C2
    A3 -- B3
    A4 -- B4
    C3 -- B2
    C4 -- B1
}

它产生以下结果:正交图

我的问题是:

  1. 有没有可能在没有新的和硬编码的节点位置的情况下生成类似的布局?
  2. 如何使连接到A3、A4、C3、C4的边缘像A1、A2、C1、C2、B1-4那样与节点中心完全一致?
  3. 如何在不改变布局的情况下将A1-4、C1-4、B1-4包围成三个盒子?(我尝试过子图集群,但它们似乎不受neato布局的支持;HTML表是一种选择,但它们在连接单元格端口方面似乎并不完美)
  4. 是否可以删除不可见的"Ae“节点并保存当前布局?(当我删除"Ae“时,一些边缘改变了它们的布局.)
EN

回答 2

Stack Overflow用户

发布于 2021-07-08 08:02:45

首先,在新加藤发动机或其他引擎中,似乎没有用于边缘的pos属性。我跟随这个答案来解决这个问题。使用(宽度属性为0)的点形状来控制边缘。

代码示例如下:

代码语言:javascript
复制
digraph {
    graph [bgcolor=white size="5.0,6.66!"]
    node [fixedsize=true]
    P1 [label=hello fontname=FangSong pos="2.604,4.583!" shape=rect]
    P0 [label=graphviz fontname=FangSong pos="0.521,5.625!" shape=rect]
    point1 [label="" fontname=FangSong pos="1.562,5.625!" shape=point width=0]
    point2 [label="" fontname=FangSong pos="1.562,4.583!" shape=point width=0]
    P0 -> point1 [arrowhead=none]
    point1 -> point2 [arrowhead=none]
    point2 -> P1 [arrowhead=normal]
}

数字是:

票数 1
EN

Stack Overflow用户

发布于 2018-03-06 00:00:37

( 1.)不是

( 2.)只需使用pos

( 3.)请展示您的尝试,这样我们也许可以详细说明这一点。

( 4.)不是

也许您尝试像UML建模工具或Visio工具一样使用graphviz。在核心图中,更多的是作为输出创建布局,而不是将布局信息作为输入使用。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49053316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档