Graphviz 使用点强制正交(垂直或水平)边

Graphviz 使用点强制正交(垂直或水平)边,graphviz,dot,edges,orthogonal,Graphviz,Dot,Edges,Orthogonal,我想强制点只显示节点之间的垂直或水平边 我在这篇文章中发现了一个类似的请求,但我不是在处理树,所以我希望有一个不插入额外节点的解决方案 如果我构建以下图表: digraph G { splines=ortho A [ shape=box ] B [ shape=box ] C [ shape=box ] D [ shape=box ] A -> B A -> C B -> D C -> D } 有向图G{ 样条线=

我想强制点只显示节点之间的垂直或水平边

我在这篇文章中发现了一个类似的请求,但我不是在处理树,所以我希望有一个不插入额外节点的解决方案

如果我构建以下图表:

digraph G { splines=ortho A [ shape=box ] B [ shape=box ] C [ shape=box ] D [ shape=box ] A -> B A -> C B -> D C -> D } 有向图G{ 样条线=正交 A[形状=盒子] B[形状=盒子] C[形状=盒子] D[形状=盒子] A->B A->C B->D C->D } 我得到的是:

但我想要一张这样的图表:

我怎样才能得到这样的渲染


编辑:“样条线”属性似乎没有按预期工作。。。我做错什么了吗?

您的语法似乎正确。当我运行它时,我得到了正交边路由(排序):

你们有哪个版本

我这样问是因为正交边路由仅在2010年9月28日及以后的Graphviz版本中可用。并非所有系统都打包了最新版本。在我的系统上,我不得不手动安装Graphviz,以获得比2.26.3(2010年1月26日起)更新的版本

假设实际图形包含4个以上的节点,如果希望线具有弯曲,并且不希望添加额外(不可见)节点,则应尝试使用 图形
nodesep
属性。请参阅下面的代码和图片

digraph G {

    graph [splines=ortho, nodesep=1]
    node [shape=record]

    A -> {B, C} -> D
}

我使用的是graphviz 3.2.1,而“ortho”也不适用于我:(。它看起来就像节点之间最短的直线。