20

ネットワークを描画したいのですが、クレチン ノードを除いて、ラベルを付けないようにしたいと考えています。

私が現時点で持っているものは次のようなものです:

nx.draw(G, pos=pos, node_color='b', node_size=8, with_labels=False)

for hub in hubs:
     nx.draw_networkx_nodes(G, pos, nodelist=[hub[0]], node_color='r')

現時点でのコードは、ハブ リスト内のノードのサイズと色を変更します。それらにもラベルを付けたいと思います。

label 引数を追加して、その値をハブ名に設定しようとしました。しかし、うまくいきませんでした。

ありがとう

4

1 に答える 1

39

Bulaのコメントから、解決策は非常に簡単です

秘訣は、キーがノード名で、値が必要なラベルであるディクショナリにラベルを設定することです。したがって、ハブのみにラベルを付けるには、コードは次のようになります。

labels = {}    
for node in G.nodes():
    if node in hubs:
        #set the node name as the key and the label as its value 
        labels[node] = node
#set the argument 'with labels' to False so you have unlabeled graph
nx.draw(G, with_labels=False)
#Now only add labels to the nodes you require (the hubs in my case)
nx.draw_networkx_labels(G,pos,labels,font_size=16,font_color='r')

私が欲しかったものは次のとおりです。 ここに画像の説明を入力

これが私のような他の python/networkx 初心者に役立つことを願っています:)

もう一度、ありがとうブラ

于 2013-02-02T23:08:48.720 に答える