【问题标题】:Networkx: nodes in the network disappear when colouringNetworkx:着色时网络中的节点消失
【发布时间】:2020-08-22 02:11:51
【问题描述】:

我在 networkx 中有一个从字典创建的网络图,我想用特定颜色为节点子集着色。

我使用创建了原始网络图 nx.draw_networkx(g, with_labels=False, node_size=20)

然后我尝试使用How to set colors for nodes in NetworkX? 中建议的解决方案将特定节点着色为不同的颜色

问题:

  1. 代码为节点着色,但同时使许多其他节点消失。我做错了什么?
  2. 一旦解决了 1),修改代码以着色多个节点的最佳方法是什么?

感谢您的帮助!

for node in g:
    if node == 'Bob':
        color_map.append('red')
    else:
        color_map.append('blue')
            
nx.draw(g, node_color=color_map, with_labels=False, node_size=20)

【问题讨论】:

    标签: pandas networkx


    【解决方案1】:

    这是一个代码示例,您可以在其中使用映射字典对多个节点进行颜色编码。我无法重现缺少节点的问题,请使用您的数据运行此代码并查看是否缺少任何节点。

    import networkx as nx
    from matplotlib import pyplot as plt
    
    g = nx.Graph()
    g.add_edges_from([('Bob', 'Steve'), ('Bob', 'Jeff'), ('Jeff', 'George'), ('Jeff', 'Steve')])
    
    node_map = {'Bob': 'red', 'Jeff': 'green'}
    color_map = [node_map.get(n, 'blue') for n in g.nodes]
    
    nx.draw_networkx(g, node_color=color_map, with_labels=True, node_size=200)
    plt.show()
    

    【讨论】:

    • 抱歉回复晚了,我刚回到这个任务!您的代码正在运行,现在没有节点消失。我认为我的初始代码有问题。抱歉,我无法提供示例,但我实际上有 423 个节点,问题似乎出在数据/我的代码上。不过,将尝试为任何进一步的问题提供一个玩具示例。
    猜你喜欢
    • 2019-06-22
    • 1970-01-01
    • 2012-11-28
    • 2021-11-02
    • 1970-01-01
    • 2020-05-26
    • 2016-06-17
    • 1970-01-01
    • 2021-11-18
    相关资源
    最近更新 更多