pygraphviz:找到子图/图中排名最低的节点
pygraphviz: find the lowest ranking node in the subgraph / graph
我试图找到排名最低的节点,因为我想始终将某些内容放在图表的最底部。有没有办法做类似 G.lowest_rank()
的事情,它会 return 节点的字符串?
如果没有,我该如何实现?
实际上,subraph rank 属性有特殊值 max
和 sink
允许您将节点放在最低级别。
- 如果您使用
rank=max
则该节点将出现在已经存在的最低等级上。
- 如果你使用
rank=sink
那么节点有自己的排名,低于图表的最低排名,例如:
digraph {
a -> b -> c
{
rank=max
bottom1 [label="rank=max"]
}
}
digraph {
a -> b -> c
{
rank=sink
bottom1 [label="rank=sink"]
}
}
我对 PyGraphviz 不太熟悉,但是要在那里获得相同的结果,您可以这样做:
G = pgv.AGraph(directed=True)
G.add_node('a')
G.add_node('b')
G.add_node('c')
G.add_node('bottom1', label="rank=sink")
G.add_edge('a','b')
G.add_edge('b','c')
G.add_subgraph(['bottom1'], name='s1', rank='sink')
我试图找到排名最低的节点,因为我想始终将某些内容放在图表的最底部。有没有办法做类似 G.lowest_rank()
的事情,它会 return 节点的字符串?
如果没有,我该如何实现?
实际上,subraph rank 属性有特殊值 max
和 sink
允许您将节点放在最低级别。
- 如果您使用
rank=max
则该节点将出现在已经存在的最低等级上。 - 如果你使用
rank=sink
那么节点有自己的排名,低于图表的最低排名,例如:
digraph {
a -> b -> c
{
rank=max
bottom1 [label="rank=max"]
}
}
digraph {
a -> b -> c
{
rank=sink
bottom1 [label="rank=sink"]
}
}
我对 PyGraphviz 不太熟悉,但是要在那里获得相同的结果,您可以这样做:
G = pgv.AGraph(directed=True)
G.add_node('a')
G.add_node('b')
G.add_node('c')
G.add_node('bottom1', label="rank=sink")
G.add_edge('a','b')
G.add_edge('b','c')
G.add_subgraph(['bottom1'], name='s1', rank='sink')