在spyder 4下(以及在降级3后)绘图不起作用。我只是在做:
data=[1,2,3]
plt.plot(data)
输出是一个无响应的帧:
在强制关闭它之后,我得到:
An error ocurred while starting the kernel
RROR:tornado.application:Exception in callback functools.partial(.advance_eventloop at 0x000001A802791318>)
Traceback (most recent call last):
File "path\anaconda3\lib\site‑packages\tornado\ioloop.py", line 743, in _run_callback
ret = callback()
File "path\anaconda3\lib\site‑packages\ipykernel\kernelbase.py", line 310, in advance_eventloop
eventloop(self)
File "path\anaconda3\lib\site‑packages\ipykernel\eventloops.py", line 232, in loop_tk
app.tk.createfilehandler(stream.getsockopt(zmq.FD), READABLE, notifier)
AttributeError: '_tkinter.tkapp' object has no attribute 'createfilehandler'
(其中用path替换)知道为什么吗?
(如果相关,我使用的是windows、python3)
编辑
单独添加plt.show()并不会对输出(仍然是空白框架)产生影响,但这要归功于Neven V.和我添加的其他任务
root = tk.Tk()
def on_closing():
if messagebox.askokcancel("Quit", "Do you want to quit?"):
root.destroy()
root.protocol("WM_DELETE_WINDOW", on_closing)
root.mainloop()
然后,我看到了帧正在响应的曲线图。但是在单击quit之后,进程没有退出,我必须重新启动内核(主循环正在停止它,但如果没有它,我会得到结果: no plot),因此我尝试:
plt.show(block=False)
plt.pause(0.001) # Pause for interval seconds.
input("hit[enter] to end.")
plt.close('all') # all open plots are correctly closed after each run
并看到一个绘图,但在按enter后也没有响应。
发布于 2020-07-20 18:15:55
我在Spyder (IPython 7.15.0)中使用了独立的IPython (3.8.3),但当我恢复到conda安装(Python3.6.8,Python 7.6.0)时,这个问题就解决了。不过,我不确定这是否有帮助!
https://stackoverflow.com/questions/60897047
复制相似问题