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%......无论如何,让我们知道它是否工作,这是一个有趣的问题。 –