2012-12-11 13 views
9

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

कार्यक्रम अजगर में है और आप Graphviz उपयोग कर रहे हैं के बाद से ऐसा करने के लिए Networkx और Graphviz

import networkx as nx 
import numpy as np 
import pickle 
from random import randint 

p_file = open('pickles/distance') 
Dist = pickle.load(p_file) 
p_file.close() 
p_file = open('pickles/names') 
Names = pickle.load(p_file) 
p_file.close() 

dt = [('len', float)] 
A = np.array(Dist)*5 
A = A.view(dt) 

G = nx.from_numpy_matrix(A) 
G = nx.relabel_nodes(G, dict(zip(range(len(G.nodes())),Names)))  

G = nx.to_agraph(G) 
G.node_attr.update(ndcolor="red", node="DC", style="filled") 
G.edge_attr.update(color="none") 
G.draw('P1.png', format='png', prog='neato') 

उत्तर

14

का उपयोग करता ड्राइंग आप विशेषताओं Graphviz समझता प्रयोग करना होगा। देखें http://www.graphviz.org/content/attrs

import networkx as nx 
G = nx.Graph() 

G.add_node(1,color='red',style='filled',fillcolor='blue',shape='square') 
G.add_node(2,color='blue',style='filled') 
G.add_edge(1,2,color='green') 
G.node[2]['shape']='circle' 
G.node[2]['fillcolor']='red' 

A = nx.to_agraph(G) 
A.layout() 
A.draw('color.png') 
print A.to_string() 

देता

strict graph { 
    graph [bb="0,0,107.21,46.639"]; 
    node [label="\N"]; 
    1 [color=red, 
     fillcolor=blue, 
     height=0.5, 
     pos="18,28.639", 
     shape=square, 
     style=filled, 
     width=0.5]; 
    2 [color=blue, 
     fillcolor=red, 
     height=0.5, 
     pos="89.21,18", 
     shape=circle, 
     style=filled, 
     width=0.5]; 
    1 -- 2 [color=green, 
     pos="36.338,25.899 47.053,24.298 60.519,22.286 71.18,20.694"]; 
} 

enter image description here

+1

तुम मेरे कोड में, मैं दूरी मैट्रिक्स से नोड्स और किनारों द्वारा जोड़ा जा रहा देख सकते हैं। आपके द्वारा वर्णित विधि इस मामले में लागू नहीं की जा सकती है। क्या आप किसी अन्य विधि को जानते हैं? – Anirudh

+1

आप ग्राफ जी बनाने के बाद विशेषताओं को जोड़ सकते हैं। जी। नोड [नोडनाम] ['रंग'] = 'लाल', आदि का उपयोग करें – Aric

+1

ओह यह काम करता है! धन्यवाद अरिक। क्या आप इसे उत्तर में जोड़ सकते हैं ताकि इससे दूसरों की भी मदद मिलेगी। – Anirudh

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