我想强制点仅显示节点之间的垂直或水平边缘。
我在帖子 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 }
我得到的是这样的:
但我想要一个像这样的图表:
怎样才能得到这样的渲染效果?
编辑:“样条线”属性似乎没有按预期工作...我做错了什么吗?
最佳答案
你的语法似乎是正确的。当我运行它时,我得到正交边缘路由(某种):
你有哪个版本?
我问这个问题是因为正交边缘路由仅在 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
}
关于graphviz - 用点强制正交(垂直或水平)边缘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15191811/