【问题标题】:Line graph of a multigraph多重图的折线图
【发布时间】:2013-08-04 07:27:06
【问题描述】:

我有一个加权有向多重图,我想从中制作一个折线图。如果在原始多重图中的两条边之间存在具有公共节点的有向路径,则将每个边替换为一个节点并连接两个节点。但是,在我的情况下,我只说如果第二个边的权重大于第一个边,则两条边之间存在一条路径。

networkx http://networkx.github.io/documentation/latest/reference/generated/networkx.generators.line.line_graph.html 中有一个基本折线图算法的实现。但是,这不支持多图。

在 networkx 或 igraph 中有没有很好的方法来做到这一点?

【问题讨论】:

    标签: python networkx igraph


    【解决方案1】:

    igraph 解决方案(尚未测试,因为我现在没有太多时间)- 假设权重存储在 weight 边缘属性中:

    weights = g.es["weight"]
    line_graph_edges = []
    for v in xrange(g.vcount()):
        incoming = g.incident(v, mode="in")
        outgoing = g.incident(v, mode="out")
        line_graph_edges.extend((e1, e2) for e1 in incoming for e2 in outgoing
            if weights[e1] < weights[e2])
    line_graph = Graph(g.ecount(), line_graph_edges)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      • 2021-04-06
      • 2012-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多