【问题标题】:matplotlib plot doesn't appear even after editing the backend and using pylab.show()即使在编辑后端并使用 pylab.show() 后,matplotlib 图也不会出现
【发布时间】:2015-08-22 08:25:56
【问题描述】:

我有一个简单的脚本来测试 matplotlib 中的绘图,但没有显示该图的窗口出现。在阅读有关 stackoverflow 的其他问题时,我已执行以下操作来解决此问题:

  • 使用 these 说明安装了 PySide。
  • 用这两行编辑 matplotlibrc 文件:

     backend      : Qt4Agg
     #backend.qt4 : PySide        # PyQt4 | PySide
    

    所以命令python -c 'import matplotlib; import matplotlib.pyplot; print(matplotlib.backends.backend)' 现在产生Qt4Agg 而之前它产生agg

  • 包括pylab.show() 命令。因此,我现在在安装 Pyside 并编辑 matplotlibrc 文件后在 python 解释器中尝试的命令集如下所示:

      import pylab
      pylab.ion()
      import matplotlib.pyplot as plt
      import numpy as np
      x = np.arange(0,5,0.1)
      y = np.sin(x)
      plt.plot(x,y)
     [<matplotlib.lines.Line2D object at 0x7fcef627cdd0>]
     pylab.show()
    

    但是,情节仍然没有显示。有人可以帮我解决这个问题吗?我在带有 python2.7 的 VirtualBox 中使用 Ubuntu 14.04。

【问题讨论】:

    标签: python matplotlib plot


    【解决方案1】:

    当我使用您的代码时,情节实际上会在屏幕上闪烁,但会立即关闭。最后放置一个input() 函数可能会帮助您调试它:

    import pylab
    import matplotlib.pyplot as plt
    import numpy as np
    
    
    pylab.ion()
    x = np.arange(0,5,0.1)
    y = np.sin(x)
    plt.plot(x,y)
    pylab.show()
    tin = input("Test Input: ")
    

    删除pylab.ion() 实际上将情节保留在屏幕上。这给了你另一个提示。已经有一些很好的答案为什么会发生这种情况。例如:

    【讨论】:

    • 感谢您的回答。我不知道刚刚发生了什么,但是我按照您在上面发布的顺序尝试了命令,即首先导入所有库,并且只要我键入 plt.plot(x,y) 就会弹出该图。并且它停留在屏幕上。唔。所以,它现在可以工作了。
    • 实际上,它在 virtualenv 之外工作,但在 virtualenv 内部它仍然会导致问题。将进一步调查。
    • 我猜你是否需要在每个情节之后暂停一下。我发布的链接中的信息说,地块之间需要plt.pause(1)。显然至少是一毫秒。
    • 是的,我刚试过。有用! :) 非常感谢!
    • 太棒了。很高兴我能帮上忙。
    猜你喜欢
    • 2016-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    相关资源
    最近更新 更多