pyplot 图冻结(无响应)

Jam*_*üeb 7 python plot matplotlib freeze

我正在努力使用 matlpotlib 库中的 pyplot。当我尝试创建绘图时,数字已经冻结:

plt.figure()
plt.ion()
ax1 = plt.subplot(211) #Here it freezes
plt.title('test', fontsize=8)
plt.xlim(-1700, 1700)
plt.ylabel('x-axis')
plt.xlabel('y-axis')
plt.grid()
plt.show()
...do something else
Run Code Online (Sandbox Code Playgroud)

我只使用过 Pyqt 绘图,但这次我想在没有多线程的情况下解决我的问题,因为我不在乎绘图是否会暂时停止我的代码。问题是,脚本不会停止而是继续运行,并且不会等到图形完全创建。(time.sleep() 没有帮助)。有没有没有线程的解决方案?

干杯,詹姆斯

Ps.:如果我在代码后面加一个断点并在调试模式下运行,就没有问题(显然)。

小智 6

对我来说,它的工作原理是:

import matplotlib
matplotlib.use('TkAgg')
Run Code Online (Sandbox Code Playgroud)


Imp*_*est 4

这个功能是否如您所愿?

import matplotlib.pyplot as plt

plt.figure()
plt.ion()
ax1 = plt.subplot(211) #Here it freezes
plt.title('test', fontsize=8)
plt.xlim(-1700, 1700)
plt.ylabel('x-axis')
plt.xlabel('y-axis')
plt.grid()
plt.draw() # draw the plot
plt.pause(5) # show it for 5 seconds
print("Hallo") # continue doing other stuff
Run Code Online (Sandbox Code Playgroud)

  • 是的,它确实; 如果我在其后添加 time.sleep(5) ,则绘图将在超时之前完成。但我想如果我想在整个代码中保留情节,我应该更改为多线程......否则当我不小心点击它时它总是会崩溃。 (2认同)