注 - 這是對上一個問題的完整重寫,我認爲這太複雜了。它提供了一個更簡單的版本,如果我能解決的話,將會取得進展。用NetworkX繪製彩色樹木
我已經適應我的代碼從這個蘇答案:Is there a way to guarantee hierarchical output from NetworkX?
用下面的代碼非常簡單,我得到了奇怪的着色行爲。
import networkx as nx
import matplotlib.pyplot as plt
G = nx.DiGraph()
G.add_node("ROOT")
for i in xrange(1):
for j in range(1):
G.add_node(str(j)+"_%i" % i,)
if j ==0:
G.add_edge("ROOT", str(j)+"_%i" % i)
else:
G.add_edge(str(j-1)+"_%i" %i, str(j)+"_%i" % i)
pos=nx.graphviz_layout(G,prog='dot')
for i in xrange(1):
nodelist = ['ROOT']
for j in range(1):
nodelist.append(str(j)+"_%i" % i)
nx.draw_networkx_nodes(G,pos, nodelist=nodelist, cmap=plt.get_cmap('Set3'), node_color=[0,1])
nx.draw_networkx_edges(G, pos,arrows=True)
limits=plt.axis('off')
這似乎並不重要什麼值,我給了node_color
,該值僅是否不同與否。例如,使用node_color = [0,1]
時,我會得到與[0,.1]
或[0,1000]
完全相同的行爲。 (爲什麼?色彩地圖的值介於0和1之間)。
但是,如果我改變了顏色表,顏色DO變化。例如:
如果我設置node_color = [3,3]
(或任何兩個值哪都一樣),我總是得到同樣的事情,節點相同顏色。
任何想法,我做錯了什麼?
一個獨立的例子會有所幫助,並且知道你的函數中有什麼'nodecolors'和'x'。 – jozzas
添加了所有涉及的其他部分。 (我只是忽略它們,因爲它們有點牽扯,我是NetworkX的新手,所以我想我可能會犯一個新手錯誤。)我認爲這是一個獨立的問題,因爲我可以提出這個問題! – Wapiti
您可以添加其他一些「時間」值的輸出嗎? – Joel