【问题标题】:Matplotlib freezes/crashes when running this exercise运行此练习时,Matplotlib 冻结/崩溃
【发布时间】:2020-08-17 07:29:30
【问题描述】:

尝试从 Python Crash Course 运行一个练习,其中我正在生成一个随机游走,其中一个循环中的输入询问当我关闭图表时是否生成新的随机游走。然而,每次我用图表关闭屏幕时,matplotlib 都会冻结并随后崩溃/停止响应。我想知道为什么会这样。谢谢。



from matplotlib import pyplot as plt 

from random_walk import RandomWalk 

# make a random walk


rw = RandomWalk()
rw.fill_walk()

plt.style.use('classic')

#plot the points in the walk
while True:
    fig, ax = plt.subplots()
    ax.scatter(rw.x_values, rw.y_values, s=15)
    plt.show()

    keep_running = input("Make another walk? (y/n): ")
    if keep_running == 'n':
        break

【问题讨论】:

  • 如果它崩溃了,你已经成功完成了速成课程;)
  • 你在关闭窗口前输入n了吗?还是关窗后?
  • 我什至无法输入任何内容,因为我一关窗就看到一个旋转的沙滩球(我在 OSX 上)

标签: python matplotlib


【解决方案1】:

如果你用'y'退出,你似乎永远不会进行新的随机游走。相反,它使用与以前相同的数据重新启动无限循环,因此您将覆盖同一张图上的数据。尝试在您的 while 循环中包含随机 Walk 创建。也尝试在 keep_running = .... 之后调用 plt.close()。

【讨论】:

  • 确实有道理,谢谢。但是,当我关闭窗口时,Python/matplotlib 只是冻结并停止响应
  • 您是尝试调用 plt.close() 还是手动关闭窗口。
  • import sys sys.exit() 是退出 Python 脚本的更好选择,而不是中断 while 循环
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-03
  • 1970-01-01
  • 2014-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多