【问题标题】:Constructing a network with multiple graphs构建具有多个图的网络
【发布时间】:2021-11-11 06:34:18
【问题描述】:

我想创建一个由图形副本组成的网络,例如空手道俱乐部网络。所以,我希望我的整个网络有,例如,空手道俱乐部网络的 2 个副本,其中两个空手道网络通过添加边连接。

有没有办法在networkx中做到这一点?到目前为止,我已经创建了空手道俱乐部网络的副本,但我正在努力将它们放入一个网络中以便它们被镜像。

提前致谢。

【问题讨论】:

    标签: python graph nodes networkx


    【解决方案1】:

    您正在寻找compose 方法,请参阅此问题的更多解释:Combine (join) networkx Graphs

    如果你想加入同一个图,你需要确保节点集是不相交的,这可以通过convert_node_labels_to_integers来实现。两个空手道俱乐部网络和图之间的边的完整示例:

    import networkx as nx
    import matplotlib.pylab as plt
    
    karate_1 = nx.karate_club_graph()
    karate_2 = nx.karate_club_graph()
    
    # relabel nodes to create disjoint nodes
    karate_1 = nx.convert_node_labels_to_integers(karate_1, first_label=0)
    print(len(karate_1))
    karate_2 = nx.convert_node_labels_to_integers(karate_2, first_label=len(karate_1))
    
    joint_graph = nx.compose(karate_1, karate_2)
    print(len(joint_graph))
    
    joint_graph.add_edge(0, 34)
    
    nx.draw(joint_graph)
    plt.show()
    

    【讨论】:

    • 非常感谢您的帮助! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-13
    相关资源
    最近更新 更多