2012-04-29 51 views
4

晚上好,我正尝试使用graphviz生成图形。Graphviz - 节点之间的水平边缘

我不知道如何在一些节点之间建模水平边缘。我使用的下一个代码来生成此图表:

Graph

digraph{ rankdir=LR; 
//{rank=same; "[0]"; "[10B1]"; "[62]"; "[8]"; "[9]"; "[10]";} 
"[0]"->"[37]"; "[37]"->"[4]"; "[37]"->"[8]"; 
"[8]"->"[9]"; "[9]"->"[10]"; "[62]"->"[8]"; 
"[0]"->"[10B1]"; "[10B1]"->"[62]"; "[0]"->"[2]"; 
"[2]"->"[3]"; "[7]"->"[8]"; "[4]"->"[7]"; 
} 

我想对准节点[8],[10B1],[62] [8],[9]和[10]在一条水平线

+0

在这里,你与世界各地的人聊天的地方是晚上,某处是午夜,某处是早晨:) –

+0

@SaeedAmiri右:-)。但是,每个人都有美好的一天:-)。 – Nanik

回答

3

您需要将这些节点放置在cluster中。在该群集中,您可以设置rank=lr将节点从左到右放置。在将连接边添加到图的其余部分之前,定义要使用的集群和节点是非常重要的。

+0

谢谢,就是这样:-)。 – Nanik

6

另一个解决方法是有其必须对齐份额group属性的值相同的节点:

digraph{ 
rankdir=LR; 

node[group=main]; 
"[0]"; "[10B1]"; "[62]"; "[8]"; "[9]"; 
node[group=""]; 

"[0]"->"[37]"; 
"[37]"->"[4]"; 
"[37]"->"[8]"; 
"[8]"->"[9]"; 
"[9]"->"[10]"; 
"[62]"->"[8]"; 
"[0]"->"[10B1]"; 
"[10B1]"->"[62]"; 
"[0]"->"[2]"; 
"[2]"->"[3]"; 
"[7]"->"[8]"; 
"[4]"->"[7]"; 
} 

你可以实现通过调整weight或使用constraint=false对于一些边缘类似的东西。

这是an other example using groupother example using weight(同样的问题)。

+0

感谢您的帮助:-)。 – Nanik

+0

与此数据(http://pastebin.com/1YeaJPtt)的错误情况。修复它是可行的吗? – Nanik

+0

Yep:http://pastebin.com/NjTN6wC7 - 稍微改变节点的顺序,并在一个边上添加“constraint = false” – marapet