在matplotlib中,是否有一种简单的方法可以绘制图形而不中断脚本的控制流程?
为了清晰起见,这里使用伪代码来说明我试图实现的内容:
fig1 = figure()
fig1.plot_a_figure(datasets)
for dataset in datasets:
results = analyze(dataset) # this takes several minutes
update(fig1)
pop_up_another_figure(results) # would like to have a look at this one
# while the next dataset is being processed
当然,我可以使用savefig()保存这些中间图形,但我只需要快速地查看它们,最好让它们在屏幕上实时弹出。编辑:一个可运行的示例:
#!/usr/bin/python
import pylab as plb
import matplotlib.pyplot as plt
fig1=plt.figure(1)
ax = fig1.add_subplot(1,1,1)
ax.plot([1,2,3],[4,5,6],'ro-')
#fig1.show() # this does not show a figure if uncommented
plt.show() # until the plot window is closed, the next line is not executed
print "doing something else now"
我是否遗漏了非常基础的东西?
show()
已经做到了这一点。你可以创建任意数量的图形,对每个图形使用show()
方法,它们将在代码继续运行时保持显示状态。你能否发布一个可运行的示例来演示问题? - Paulos.startfile()
轻松启动该图像的查看器。如果您希望它是交互式的,并且不介意将数据写入磁盘,您可以使用subprocess.Popen()
打开另一个Python脚本。第三种方法是尝试真正理解Matplotlib如何管理线程。 - Paul