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

时间:2015-02-25 16:40:50

标签: python matplotlib ipython-notebook

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

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

我想将该函数放入Python模块中,以便我可以导入并调用它。

但是,要执行此操作,我需要从代码中删除%matplotlib inline并将其替换为纯Python等效代码。

什么是纯Python等价物?

2 个答案:

答案 0 :(得分:7)

%matplotlib inline直接挂钩到IPython实例。 您可以使用%hist -t来显示已处理的输入为纯python,这表明%matplotlib inline等效于get_ipython().magic('matplotlib inline'),其中get_ipython()返回当前的ipython shell宾语。它是纯Python,但只能在IPython内核中运行。

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

答案 1 :(得分:0)

我试图将这一行注释掉

#nav {
    color: red;
    font-family: "Titling Gothic FB Normal", Icons /*!Persona*/;
    font-style: normal;
    font-weight: 700;
    writing-mode: vertical-lr;
    font-size: 2.6rem;
    margin-left: 1rem;
    letter-spacing: 0.1rem;
    -webkit-text-fill-color: white; 
    -webkit-text-stroke-width: 1.3px;
    -webkit-text-stroke-color: red;  
}

#nav:after {
    content: '               ';
    position: absolute;
    left:2rem;
    top:2.5rem;
    -webkit-text-stroke-color: blue;
    font-size:3rem;
     text-decoration-line: underline;
    text-decoration-style: wavy; 
}

对我有用。