【问题标题】:pygraphviz: find the lowest ranking node in the subgraph / graphpygraphviz:找到子图/图中排名最低的节点
【发布时间】:2020-02-14 15:26:00
【问题描述】:

我试图找到排名最低的节点,因为我想总是在图表的最底部放置一些东西。有没有办法做类似G.lowest_rank() 的事情,它会返回节点的字符串?

如果没有,我该如何实现?

【问题讨论】:

  • 能否请您提供您现在正在使用的代码,以便我们有一个完整的工作示例?

标签: graphviz pygraphviz


【解决方案1】:

实际上,子图rank 属性有一些特殊值,称为maxsink,它们允许您将节点置于最低等级。

  • 如果您使用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')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-14
    • 2020-02-23
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多