1
- 我有一張很大的圖表,我正在繪製的圖表需要花費很長時間來處理 過程。
- 是否可以返回圖形當前狀態的
status
,current_node
或percentage
? - 我不想逐步繪製網絡,因爲我正在做的是將它保存到高DPI圖像。
下面是我使用的代碼示例:繪製大型NetworkX圖形時返回進度狀態
path = nx.shortest_path(G, source=u'1234', target=u'98765')
path_edges = zip(path, path[1:])
pos = nx.spring_layout(G)
nx.draw_networkx_nodes(G,pos,nodelist=path,node_color='r')
nx.draw_networkx_edges(G,pos,edgelist=path_edges,edge_color='r',width=10)
plt.axis('equal')
plt.savefig('prototype_map.png', dpi=1000)
plt.show()
這聽起來足以通過在每個部分的開始處插入日誌語句來報告狀態:如「狀態:存儲%d個節點」%len(節點)。人們甚至可以在相同的地方添加一些時間表,並設置測試用例以通過實驗來了解問題的順序。 – cphlewis
的確,您可以查看matplotlib的分散源代碼以獲取更詳細的狀態。另一個想法是做一些實驗來獲得繪圖函數期間的時間(即通過捕獲調用函數之前和之後的時間),然後將平均時間除以節點的數量以知道每個節點花費的時間。這可以在這裏使用分析來正式完成https://docs.python.org/2/library/profile.html –
如果知道每個節點運行一個並行線程運行的時間之後,它會更直觀時間=節點數量*每個節點的時間和打印10%,20%......無論如何,讓我們知道它是否工作,這是一個有趣的問題。 –