Graphviz中的节点分层
我正在使用Graphviz(用neato编译)创建一个图形。此图包含许多重叠的节点,这非常好。然而,有一组大节点,我更喜欢总是位于其他小节点之上——尽管我更喜欢在图中首先定义大节点(这使得它们被绘制在最底部) 我能强迫你吗 编辑:Graphviz中的节点分层,graph,visualization,graphviz,dot,neato,Graph,Visualization,Graphviz,Dot,Neato,我正在使用Graphviz(用neato编译)创建一个图形。此图包含许多重叠的节点,这非常好。然而,有一组大节点,我更喜欢总是位于其他小节点之上——尽管我更喜欢在图中首先定义大节点(这使得它们被绘制在最底部) 我能强迫你吗 编辑: 这里有一个小例子,只是为了澄清我的意思: graph G { node [style=filled,fillcolor=black]; BigNode [fillcolor=skyblue,shape=Msquare]; node [styl
这里有一个小例子,只是为了澄清我的意思:
graph G {
node [style=filled,fillcolor=black];
BigNode [fillcolor=skyblue,shape=Msquare];
node [style=filled,fillcolor=red,shape=circle];
edge [style=invis]
1 -- BigNode[len=0.5];
2 -- BigNode[len=1];
}
我想在节点
1
上画BigNode
,我认为这是不可能的。该官员在第6页到第9页讨论了节点分层。看起来你最多能做的就是调整边的长度和固定节点:你实际上无法控制节点之间的分层方式。我确实找到了一种(某种)解决方案…我发现,如果只将节点定义推迟到最后,即使您先前定义了此节点的边,它也将被绘制在最上面。
我意识到这与我之前的定义相矛盾,但这是本例中唯一可能的解决方案,也是我最终不得不使用的解决方案 在我的简短示例中,您可以这样做:
graph G {
node[style=filled,fillcolor=black];
// Definition of BigNode moved to the end of the file
/*BigNode [fillcolor=skyblue,shape=Msquare];*/
node[style=filled,fillcolor=red,shape=circle];
edge[style=invis]
1 -- BigNode[len=0.5];
2 -- BigNode[len=1];
// Defined after already defining edges for BigNode
BigNode [fillcolor=skyblue,shape=Msquare];
}
在结果图中,
BigNode
被绘制在节点1
上,用于上面的确切问题定义,不幸的是,您是对的,没有解决方案。