【问题标题】:Jupyter Notebook ImportError, %matplotlib qtJupyter Notebook ImportError, %matplotlib qt
【发布时间】:2015-12-20 03:24:37
【问题描述】:

我正在使用

%matplotlib inline

在笔记本中显示绘图。我想为几个单元格禁用此功能。所以,我试试

%matplotlib qt

这会输出以下错误:

ImportError: Matplotlib qt-based backends require an external PyQt4, PyQt5,
or PySide package to be installed, but it was not found.

我不知道如何解决这个问题,因为一切都是最新的。

  1. 我该如何解决上述问题?

  2. 是否有另一种方法可以在某个单元格中禁用%matplotlib inline 而无需重新启动整个内核?

【问题讨论】:

  • 您使用的是什么平台?你是如何安装 matplotlib 的?
  • 您的目标只是抑制某些线条的绘图,还是您真的想打开外部绘图窗口?
  • @ali_m 后者。地块太大。

标签: python matplotlib ipython-notebook jupyter jupyter-notebook


【解决方案1】:

可能可以使用plt.switch_backend,尽管如文档所述,这是一项实验性功能。以下适用于我,使用 matplotlib 1.5 和 IPython 4.0.1:

In [1]: from matplotlib import pyplot as plt

In [2]: import numpy as np

# plot appears inline (default)
In [3]:plt.plot(np.random.randn(10))
Out[3]:[<matplotlib.lines.Line2D at 0x7fac4408e390>]

In [4]: plt.switch_backend('QtAgg4')

# plot appears inside a separate Qt4 window
In [5]:plt.plot(np.random.randn(10))
Out[5]:[<matplotlib.lines.Line2D at 0x7fac3b408a90>]

您可能需要根据您安装的任何 PyQt 版本更改 'QtAgg4' - 这可能是您在问题中提到的错误的原因。另一个应该在 Mac 上工作的交互式后端是 'CocoaAgg'。如果图像非常大,您还可以使用'Agg' 后端来完全禁止绘图,而是将结果图直接保存到磁盘。

【讨论】:

  • " 而是将结果图直接保存到磁盘。"这基本上就是我所做的。我只是对%matplotlib qt 不起作用感到恼火。是时候打开一个问题了...
  • 在你打开一个问题之前,你有多确定你确实安装了 PyQt4、PyQt5 或 PySide?​​span>
  • 同意。现在卸载并重新安装。
  • 另外,请注意,即使您确实安装了一个 Qt 后端,%matplotlib 魔法也只允许您在尚未启动交互式 matplotlib 会话时切换后端。由于默认情况下~$ ipython notebook 通常会使用inline 后端启动交互式会话,因此您不应期望%matplotlib qt 在正在运行的会话中工作。请改用plt.switch_backend
  • 我来这里是为了解决一个不同的问题,但我想说@ali_m 的回复给了我解决方案:CocoaAgg 刚刚让我在 Mac 中的 matplotlib 设置在之后开箱即用与QtAgg4 + PySide 苦苦挣扎了几天,它返回了与问题中描述的相同的错误输出。
【解决方案2】:

如果您没有安装特定的后端,请使用“agg”:

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

参考:https://github.com/matplotlib/matplotlib/issues/9017

【讨论】:

    猜你喜欢
    • 2018-05-12
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 2021-06-20
    • 1970-01-01
    相关资源
    最近更新 更多