我不确定这是一个bug还是我的一些误解。如果第一种情况适用,请让我知道,以便我使用适当的问题跟踪器。
考虑以下./myscript.py
:
import numpy as np
import matplotlib.pyplot as plt
tf = 20
f0 = 1
fs = 4*np.pi*f0
t = np.arange(0, tf, 1/fs)
fig, ax = plt.subplots()
ax.plot(t, np.sin(2*np.pi*f0*t))
plt.show()
如果我通过jupyter console
运行上面的脚本,请通过下面的命令:
In [1]: run -i ./myscript.py
然后控制台冻结,我必须<c-c>
,然后重新启动内核才能继续工作。如果我通过删除最后一行来修改上面的脚本,然后运行以下命令:
In [1]: run -i ./myscript.py
In [2]: plt.show()
然后事情就可以完美地工作了,但是手动调用plt.show()
是非常烦人的,如后一个例子所示。
如何解决这个问题?
EDIT:更多细节。在我用<c-c>
停止内核并尝试从jupyter控制台运行任何命令后,我得到以下错误消息:
/opt/homebrew/Caskroom/miniconda/base/envs/manim_ce/lib/python3.11/site-packages/jupyter_console/ptshell.py:787: UserWarning: The kernel did
not respond to an is_complete_request. Setting `use_kernel_is_complete` to False.
warn('The kernel did not respond to an is_complete_request. '
1条答案
按热度按时间o4tp2gmn1#
[已解决]:我必须在绘图之前添加
plt.pause()
。以上脚本已修改为: