我想强制点只在节点之间显示垂直或水平边缘。
我在帖子Family tree layout with Dot/GraphViz找到了类似的请求,但我没有处理树,所以我希望有一个解决方案,而不插入额外的节点......
如果我构建以下图表:
digraph G { splines=ortho A [ shape=box ] B [ shape=box ] C [ shape=box ] D [ shape=box ] A -> B A -> C B -> D C -> D }
我得到的是:
但我想要一张像这样的图表:
我怎样才能获得这样的渲染?
编辑:“splines”属性似乎没有按预期工作......我做错了什么?
答案 0 :(得分:35)
您的语法似乎正确无误。当我运行它时,我得到正交边缘路由(各种):
你有哪个版本?
我问,因为正交边缘路由仅适用于2010年9月28日及更新版本的Graphviz版本。并非所有系统都包含更新的版本。在我的系统上,我必须download并手动安装Graphviz以获得比2.26.3更新的版本(从2010年1月26日开始)。
假设您的实际图形包含4个以上的节点,如果您希望线条具有弯曲并且您不想添加额外(不可见)节点,则应尝试使用
图表nodesep
属性。请参阅下面的代码和图片。
digraph G {
graph [splines=ortho, nodesep=1]
node [shape=record]
A -> {B, C} -> D
}