2010-10-20 13 views
11

मैं विज़ुअलाइजेशन के लिए नेटवर्कक्स का उपयोग कर रहा हूं। मैं देखता हूं कि जब मैं draw_networkx_edge_labels फ़ंक्शन का उपयोग करता हूं तो मैं किनारों के लिए लेबल पुनर्प्राप्त कर सकता हूं।नेटवर्कएक्स नोड विशेषता चित्र

मैं नोड (लेबल के बजाय) पर विशेषता मुद्रित करना चाहता हूं .. लगभग सबकुछ कोशिश करें। अभी भी अटक। यदि मेरे पास प्रति नोड 5 विशेषताएँ हैं, तो क्या मैं वैसे भी प्रत्येक नोड पर एक विशिष्ट विशेषता मुद्रित कर सकता हूं? उदाहरण के लिए, यदि कार नोड में विशेषताएं हैं: आकार, मूल्य, कंपनी, .. मैं प्रत्येक नोड पर कार के आकार को मुद्रित करना चाहता हूं?

पता नहीं कि ग्राफ पर इसे आउटपुट कर सकते हैं या नहीं।

उत्तर

17

आप लेबल्स = कीवर्ड निर्दिष्ट करके इसे कर सकते हैं - यह थोड़ा बेकार है। उदाहरण के लिए:

In [1]: import pylab 

In [2]: import networkx as nx 

In [3]: G=nx.Graph() 

In [4]: G.add_node('Golf',size='small') 

In [5]: G.add_node('Hummer',size='huge') 

In [6]: G.add_edge('Golf','Hummer') 

In [7]: labels=dict((n,d['size']) for n,d in G.nodes(data=True)) 

In [8]: labels 
Out[8]: {'Golf': 'small', 'Hummer': 'huge'} 

In [9]: nx.draw(G,labels=labels,node_size=1000) 

In [10]: pylab.show() 
+3

लाइन 7 के लिए एक कुछ हद तक आसान प्रतिस्थापन: 'लेबल = nx.get_node_attributes (जी, 'आकार')' यही कारण है कि समारोह लाइन 7 में बनाए गए एक तरह एक dict देता है। – TrentP

संबंधित मुद्दे