【问题标题】:plt.show() making terminal hangplt.show() 使终端挂起
【发布时间】:2012-11-13 11:33:54
【问题描述】:

在我在其中一个程序中调用的最后一个函数的末尾,我有以下代码来绘制一个简单的颜色图。

plt.figure()
plt.pcolormesh(X,Y,Z)
plt.colorbar()
plt.show()

之后我回到主程序,我的程序就完成了。该图按预期显示,但是当我使用角落中的 x 按钮(在 ubuntu 上)关闭它时,我的程序并没有结束。它只是挂在那里,有一个进程正在运行。我该如何纠正这个问题?

【问题讨论】:

  • 一个快速而肮脏的解决方案可能是尝试使用plt.draw() 而不是plt.show()show() 加载所有交互式工具,其中draw() 应该是一个简单的查看器,可以更好地与您的程序的其余部分一起播放。
  • 另外,您使用的是哪个版本的 matplotlib?版本 1.0.0 对 show() 进行了一些更改,以使其更符合您想要做的事情。 See the docs 了解更多信息。
  • 你是在使用 ipython,还是其他能正确处理 GUI 线程的 matplotlib 友好控制台?

标签: python matplotlib


【解决方案1】:

您的 matplotlib 可能出于某种原因在 non-interactive mode 中运行。 我不知道如何在您的本地配置中防止这种情况,但如果您添加以下任何一项:

plt.ion()

或者这个:

matplotlib.interactive(True)

在脚本开头的某个地方,它应该会改变绘图的行为。

【讨论】:

    【解决方案2】:

    对于交互模式,你需要在文件的头部:

    import matplotlib
    matplotlib.use("TkAgg")
    

    【讨论】:

    猜你喜欢
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多