【问题标题】:matplotlib hangs on mac osx and graph is not displayedmatplotlib 在 mac osx 上挂起并且不显示图形
【发布时间】:2015-05-16 20:46:14
【问题描述】:

我正在使用 Mac Yosemite 和 Anaconda 的 Python 3.4 发行版。每当我这样做

 import matplotlib.pyplot as plt
 ...
 plt.semilogy(x, y)
 plt.show()

在挂起状态下弹出一个空窗口。

我看到一个类似的帖子:Matplotlib not showing up in Mac OSX,推荐使用

sudo port install py25-matplotlib +cairo+gtk2
sudo port install py26-matplotlib +cairo+gtk2

由于我使用的是python 3.4,所以我尝试过

sudo port install py34-matplotlib +cairo+gtk2

安装很顺利,但是当我尝试在 PyCharm 内的 Python 控制台上 import matplotlib 时,我收到以下错误:

Backend GTKCairo is interactive backend. Turning interactive mode on.
Failed to enable GUI event loop integration for 'gtk'
Traceback (most recent call last):
  File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydev_console_utils.py", line 498, in do_enable_gui
enable_gui(guiname)
  File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydev_ipython/inputhook.py", line 479, in enable_gui
return gui_hook(app)
  File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydev_ipython/inputhook.py", line 227, in enable_gtk
from pydev_ipython.inputhookgtk import create_inputhook_gtk
  File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
  File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydev_ipython/inputhookgtk.py", line 19, in <module>
import gtk, gobject
  File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
ImportError: No module named 'gtk'
  1. 可能是什么问题?

  2. 我在 PyCharm 中找不到任何 gtk 模块,但我找到了 PyGTKPyGTKCodeBufferPyGTKImageView 等。gtk 模块有任何网站吗?

* 编辑 *

我通过在matplotlibrc 文件中添加Interactive : True 解决了这个问题。

【问题讨论】:

  • PyGTK 是 Python gtk 模块的来源。尝试安装那个,看看它是否修复它。
  • 你应该回答你自己的问题,因为你找到了解决方案,我几乎错过了你的编辑,其中包含你所做的细节

标签: python macos matplotlib


【解决方案1】:

我按照this blog post 中的说明进行操作。

简而言之,替换:

 import matplotlib.pyplot as plt

以下内容:

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt

然后打开一个图形窗口(对我来说,它是在隐藏在我的 IDE 后面的背景中打开的,所以起初我以为什么都没发生)

【讨论】:

    【解决方案2】:

    对于像我这样使用 IPython 的人,你可以输入:

    %matplotlib auto
    

    适用于 Linux 和 MacOS。

    【讨论】:

      【解决方案3】:

      您在这篇文章中写道: ply.show()

      正确的形式是 plt.show()。这是你的错误吗?或者你只是在这个帖子上写错了

      【讨论】:

      • 不,在我的代码中,我使用了plt.show()。写这个问题的时候打错了。
      【解决方案4】:

      你为什么在 anaconda 中使用端口?

      在您的 conda 环境中(即从命令行输入 source activate my_env 后,其中 my_env 是您的环境名称):

      condo update conda
      conda install matplotlib
      conda install pyqt
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-16
        • 2020-07-01
        • 2011-09-15
        • 2014-05-01
        • 1970-01-01
        • 2023-04-06
        • 2023-03-05
        • 2019-07-02
        相关资源
        最近更新 更多