协慌网

登录 贡献 社区

如何使 IPython 笔记本 Matplotlib 内联绘图

我试图在 MacOS X 上使用带有 Python 2.7.2 和 IPython 1.1.0 的 IPython Notebook。

我无法获得 matplotlib 图形来内联显示。

import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

我也尝试了%pylab inline和 ipython 命令行参数--pylab=inline但这没什么区别。

x = np.linspace(0, 3*np.pi, 500)
plt.plot(x, np.sin(x**2))
plt.title('A simple chirp')
plt.show()

我得到的不是内联图形,而是:

<matplotlib.figure.Figure at 0x110b9c450>

matplotlib.get_backend()表明我有'module://IPython.kernel.zmq.pylab.backend_inline'后端。

答案

我在笔记本的第一个单元格中使用了%matplotlib inline我认为您应该尝试:

%matplotlib inline

import matplotlib
import numpy as np
import matplotlib.pyplot as plt

通过在配置文件中设置以下配置选项,默认情况下,您也始终可以始终默认以内联模式启动所有 IPython 内核:

c.IPKernelApp.matplotlib=<CaselessStrEnum>
  Default: None
  Choices: ['auto', 'gtk', 'gtk3', 'inline', 'nbagg', 'notebook', 'osx', 'qt', 'qt4', 'qt5', 'tk', 'wx']
  Configure matplotlib for interactive use with the default matplotlib backend.

如果您的 matplotlib 版本高于 1.4,则也可以使用

IPython 3.x 及更高版本

%matplotlib notebook

import matplotlib.pyplot as plt

较旧的版本

%matplotlib nbagg

import matplotlib.pyplot as plt

两者都将激活nbagg 后端,从而启用交互性。

使用nbagg后端的示例图

Ctrl + Enter

%matplotlib inline

魔术线:D

请参阅: 使用 Matplotlib 进行绘图