我正在尝试让一个图表弹出来,以便用户可以确认拟合是否成功,但不会因此挂起整个流程。然而,虽然窗口出现了,但里面从来没有任何东西,而且它是“未响应”的。我怀疑这与子进程功能有不良互动有关,因为这段代码是用于前端和数据处理的模拟运行在 C++ 中。
import subprocess
import numpy as np
from matplotlib import pyplot as mpl
...
mpl.ion()
fig = mpl.figure()
ax = fig.add_subplot(1,1,1)
ax.grid(True)
ax.plot(x, y, 'g')
ax.scatter(X, Y, c='b')
ax.scatter(min_tilt, min_energy, c='r')
mpl.draw()
...
subprocess.call(prog)
以下子进程确实打开。如果我删除
ion()
的调用并使用mpl.show()
,那么绘图可以正常工作,但整个过程会一直等待窗口关闭。我需要在用户查看图形时继续进行该过程。有没有方法可以做到这一点?
plt.show(block=False)
是否会产生相同的效果? - pelsonmpl.pause(0.0001)
而非mpl.draw()
的同时,成功显示了图表,但每当我尝试单击它时,窗口就会进入“未响应”状态。有人知道原因吗? - blue_chip