Подтвердить что ты не робот

Маркировка сетевых узлов Networkx

Я хочу создать сеть, и я хочу, чтобы она была немечено с исключением для узлов cretin.

То, что у меня есть в данный момент, выглядит примерно так:

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')

В настоящий момент код изменяет размер и цвет узлов в списке концентраторов. Я также хотел бы отметить их.

Я попытался добавить аргумент метки и установить его значение для имени концентратора. но это не сработало.

Спасибо

4b9b3361

Ответ 1

От Bula комментировать решение довольно легко

Трюк заключается в том, чтобы установить метки в словаре, где ключ является именем node, а значение - требуемой меткой. Поэтому для обозначения только концентраторов код будет примерно таким:

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')

Я получил то, что хотел, следующее: enter image description here

Надеюсь, это поможет другим новичкам python/networkx, таким как я:)

Снова, спасибо Буле