包括没有%matplotlib魔术功能的IPython笔记本中的绘图

时间:2015-02-05 16:36:07

标签: python matplotlib plot ipython-notebook

设定:

我有一个IPython Notebook,我想在我的文档的教程部分中包含这些内容。我写过.ipynb - > .rst转换脚本(使用pandoc),其工作方式如下:首先将笔记本转换为.py文件,该文件作为脚本执行,如果脚本执行没有引发异常,则会触发.rst导出并链接到该教程是在文档的适当位置构建的。这样,只有在代码执行教程所说的内容的条件下,才能将教程集成到我的文档中。该方法是由以下问题开发的:Raise exception if script fails

好的,这就是问题所在。我想要一些.ipynb教程包含matplotlib的内联图。我在IPython Notebook中显示绘图的方式是使用魔术函数调用:

%matplotlib inline 

但是,如果此命令出现在python可执行脚本中,则python会引发异常。所以我的教程目前都没有包含图表。

问题:

所以我的问题是这样的:我怎样才能在笔记本中包含内嵌图,这种方式在将笔记本导出到.py文件并作为脚本执行时不会引发异常?或者,除此之外,还有其他解决方法的建议吗?

2 个答案:

答案 0 :(得分:1)

请改用:

from IPython import get_ipython
ipython = get_ipython()
if ipython:
    ipython.magic("matplotlib inline")

答案 1 :(得分:0)

目前,应该没有必要在jupyter中使用%matplotlib inline魔法。相反,这应该很好地显示:

import matplotlib.pyplot as plt
fig, ax = plt.subplot(111)
ax.plot([3,4,2,5])
fig