什么是纯Python相当于IPython魔术函数调用%matplotlib内联?

cof*_*der 5 python matplotlib ipython-notebook

在IPython Notebook中,我定义了一个包含对magic函数的调用的函数%matplotlib,如下所示:

def foo(x):
    %matplotlib inline
    # ... some useful stuff happens in between here
    imshow(np.asarray(img))
Run Code Online (Sandbox Code Playgroud)

我想把这个函数放到Python模块中,这样我就可以导入并调用它.

但是,要做到这一点,我需要%matplotlib inline从我的代码中删除它并用它的纯Python等效替换它.

什么是纯Python等价物?

Mat*_*att 9

%matplotlib inline直接挂钩到IPython实例.您可以通过使用获得相当于%hist -t是告诉你处理后的输入为纯Python,这表明%matplotlib inline以相当于get_ipython().magic('matplotlib inline')get_ipython()返回当前IPython的壳对象.它是纯Python,但只能在IPython内核中运行.

有关更深入的解释,%matplolib xxx只需将matplotlib后端设置为xxx,内联的情况有点不同,需要首先使用IPython附带的后端而不是matplotlib.即使这个后端在matplotlib本身,它需要IPython本身的钩子来触发每个单元格执行后matplotlib数字的显示和GC.

  • 嗨,我尝试了这种方法,但它返回了`AttributeError:'NoneType'对象没有属性'magic'.有帮助吗? (5认同)