2010-01-29 104 views
2

我使用Python的networkx包。該文件說我們可以做H.add_edge(1,2,color='blue'),但輸出顯示一個邊緣與默認(黑色)的顏色。當我做H.add_node(12,color='green')我得到一個具有相同默認紅色的新節點。添加具有顏色屬性的邊緣/節點

+0

沒有人回答這個問題,如果我把networkx標記 – Bruce 2010-01-29 05:55:17

+0

你可以有任意多的標記,你想:-) – 2010-01-29 06:13:50

回答

4

彼得,根據該文件,更改與哪些節點顏色/邊緣繪製,你必須提供node_color參數傳遞給繪圖功能。即從this example,得出這樣的曲線圖(注意節點的不同顏色):

alt text http://networkx.lanl.gov/_images/house_with_colors.png

的代碼是:

#!/usr/bin/env python 
""" 
Draw a graph with matplotlib. 
You must have matplotlib for this to work. 
""" 
__author__ = """Aric Hagberg ([email protected])""" 
try: 
    import matplotlib.pyplot as plt 
except: 
    raise 

import networkx as nx 

G=nx.house_graph() 
# explicitly set positions 
pos={0:(0,0), 
    1:(1,0), 
    2:(0,1), 
    3:(1,1), 
    4:(0.5,2.0)} 

nx.draw_networkx_nodes(G,pos,node_size=2000,nodelist=[4]) 
nx.draw_networkx_nodes(G,pos,node_size=3000,nodelist=[0,1,2,3],node_color='b') 
nx.draw_networkx_edges(G,pos,alpha=0.5,width=6) 
plt.axis('off') 
plt.savefig("house_with_colors.png") # save as png 
plt.show() # display 

注意node_color參數到所述第二呼叫,以draw_networkx_nodes。這有幫助嗎?

+0

我正在建立一個100個節點的圖形。我需要設置每個節點的位置嗎?我可以隨意設置它嗎?我該怎麼做 – Bruce 2010-01-29 06:25:54

+1

@彼得:做的顏色工作,這是一個不同的問題?無論如何,我不是networkx繪圖工具的專家。它有一個佈局引擎,您可以使用它自動繪製大圖,閱讀文檔並查看示例 - 我相信您會知道它 – 2010-01-29 06:30:03

+0

是的顏色工作。我從文檔中找到了佈局。謝謝Eli – Bruce 2010-01-29 06:42:22