如何只在networkx图上显示重要节点的名称?

问题描述 投票:1回答:1

该图看起来很乱,几乎没有识别任何东西。我只希望它显示具有高中心性的节点的名称,但我不知道如何。我现在只能显示所有名字。

Graph:the result of the following codes

G_D = nx.Graph()G_D.add_edges_from(G5.edges(data = True))

nx.draw(G_D,nx.spring_layout(G_D),node_size = [v * 10 for v in df.iloc [:,0]],with_labels = True)

python label networkx
1个回答
0
投票

nx.draw有一个参数labels,它与with_labels=True结合只能绘制你想要的标签,只有你想要的。

labels(字典,可选(默认=无)) - 由文本标签节点键入的字典中的节点标签

例如,您可以选择节点'label'参数并为具有3个或更多邻居的节点绘制标签:

labels = {
    n: (G.nodes[n]['label']
        if len(list(nx.all_neighbors(G, n))) > 2
        else '')
    for n in G.nodes
}
nx.draw(G, with_labels=True, labels=labels)

附:我不建议使用基本的networkx绘图功能。有许多强大的可视化库比networkx更好。甚至in networkx docs你可以找到相同的意见。人们可以使用GephiGraphviz(与各种库)或Cytoscape用于真正的巨大图表。

© www.soinside.com 2019 - 2024. All rights reserved.