2013-02-02 23 views
10

Tôi muốn vẽ một mạng và tôi muốn nó không được gắn nhãn với ngoại lệ cho các nút cretin.Ghi nhãn nút mạng cụ thể

Những gì tôi có vào lúc này là một cái gì đó như thế này:

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

Mã vào lúc này thay đổi kích thước và màu sắc của các nút trong danh sách các trung tâm. Tôi cũng muốn gắn nhãn cho họ.

Tôi đã cố thêm đối số nhãn và đặt giá trị của nó thành tên trung tâm. nhưng nó không hoạt động.

Cảm ơn

+2

Nếu 'mục hubs' đã có trong đồ thị dưới' G' bạn nên gọi 'nx.draw_networkx' với 'labels' thiết lập vào từ điển mà có phím như các nút trung tâm và giá trị như nhãn/chuỗi. – Bula

+0

Thực ra những gì bạn đã giải quyết được vấn đề :) Cảm ơn – amaatouq

Trả lời

16

Từ bình luận Bula của giải pháp này là khá dễ dàng

Bí quyết là để thiết lập các nhãn trong một cuốn từ điển nơi chìa khóa là tên nút và giá trị là nhãn bạn yêu cầu. Do đó để đặt tên chỉ các trung tâm, các mã sẽ được một cái gì đó tương tự như sau:

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

tôi nhận được những gì tôi muốn là như sau: enter image description here

Tôi hy vọng điều này sẽ giúp python/người mới networkx khác như bản thân mình :)

Một lần nữa, cám ơn Bula

+0

Rất vui khi được trợ giúp, thông tin này nằm trong [tài liệu] (http://networkx.github.com/documentation/latest/reference/generated/networkx.drawing.nx_pylab.draw_networkx .html # networkx.drawing.nx_pylab.draw_networkx) nhưng biểu thức không rõ ràng để ở bên an toàn, bạn chỉ có thể thử nghiệm hoặc tìm trong 'draw_networkx' [source line] (https://github.com/networkx/networkx /blob/master/networkx/drawing/nx_pylab.py#L262) nơi nó gọi 'draw_networkx_labels' và [there] (https://github.com/networkx/networkx/blob/master/networkx/drawing/nx_pylab.py# L698) nó lặp qua từ điển làm lables. – Bula

Các vấn đề liên quan