我是graphviz的新手,我只是想知道如何确定图中的相对节点定位。例如,如果我想绘制一个简单的三角形'abc',节点'a'位于顶部,节点'b'和'c'位于底部的同一级别,我该如何告诉graphviz布局节点是否符合要求?
我尝试了以下内容:
graph G
{
node [shape="circle"];
edge [lblstyle="auto"];
{rank=min; "a"}
a -- b [label = "-"];
a -- c [label = "-"];
{rank=same; "b" "c"}
b -- c [label = "+"];
}
但是输出将节点“a”和“b”定位在顶部的同一级别上,节点“c”位于底部。
此外,是否可以在同一图表中并排绘制两个这样的三角形(中间有适当的空间)?如果是的话,它是如何实现的?
非常感谢。
答案 0 :(得分:4)
但是输出将节点'a'和'b'定位在同一级别上 顶部,底部有节点“c”。
我实际上得到了一个顶部,居中于b和c之上(见图)。
你的标记,稍微简化了(什么是 lblstyle ?),似乎达到了用点渲染时的效果:
graph G
{
node[shape=circle];
a -- b [label = "-"];
a -- c [label = "-"];
{rank=same; b -- c [label="+"];}
}
您使用的是什么版本的graphviz?
并排两个三角形:
graph G
{
node[shape=circle];
edge[label="-"];
a -- b;
a -- c;
{rank=same; b -- c [label="+"];}
d -- e;
d -- f;
{rank=same; e -- f [label="+"];}
}
但是,如果事情变得更复杂,可能很难将graphviz布局完全按照自己的意愿进行布局。这实际上是graphviz的优势 - 应用布局算法以便不让用户进行干预。