【问题标题】:%matplotlib inline gives the same result with or without it on Jupyter Notebook%matplotlib inline 在 Jupyter Notebook 上不管有没有它都会给出相同的结果
【发布时间】:2020-03-15 12:26:37
【问题描述】:

所以我经历了一些关于在 Jupyter Notebook 中使用 %matplotlib 内联函数的问题,我明白“%matplotlib inline 将 matplotlib 的后端设置为‘内联’后端”和“当使用‘内联’时' 后端,您的 matplotlib 图形将包含在您的笔记本中,位于代码旁边”。但是,无论是否使用“%matplotlib inline”,我的绘图结果都没有任何区别。如果我误解了什么,有人可以向我解释一下吗?这是我尝试过的简单代码:

Graph with %matplotlib inline

%matplotlib inline
import matplotlib as mpl
import matplotlib.pyplot as plt

plt.plot([[0,0],[1,1]], linewidth=4, label='random diagonal')

在下一个代码中,我刚刚取消了%matplotlib inline,它仍然给了我相同的结果。那么使用或不使用“%matplotlib inline”函数有什么意义呢?

【问题讨论】:

  • 您的笔记本默认配置为使用内联后端。在这种情况下,您无需再次设置。
  • @ImportanceOfBeingErnest 是的,如果这是真的,那就更有意义了。有什么办法可以检查吗?

标签: python matplotlib jupyter-notebook magic-function


【解决方案1】:

感谢@ImportanceOfBeingErnest,发现问题来自已设置为内联的笔记本后端。运行代码matplotlib.get_backend() 后,您可以看到笔记本中的后端已默认设置为内联。我猜这现在是 Anaconda 版本的 Python 3.7 笔记本中的默认设置。

【讨论】:

    【解决方案2】:

    这都是关于在笔记本电脑上运行的后端。您可以使用几种不同的输出模式,例如将其打印到笔记本、新窗口或内联。用户here 根据documentation 展示了几种不同的工作方式:

    要设置它,在matplotlib 的任何绘图或导入之前 执行您必须执行%matplotlib magic command。这 执行 IPython 工作所需的幕后设置 与matplotlib正确携手;然而,它不 实际执行任何 Python 导入命令,即没有名字 添加到命名空间。

    IPython 提供的一个特别有趣的后端是 inline 后端。这仅适用于 Jupyter Notebook 和 Jupyter QtConsole。调用方式如下:

    %matplotlib inline
    

    有了这个后端,绘图命令的输出被内联显示 在 Jupyter 笔记本等前端中,直接在代码下方 产生它的细胞。然后,生成的图也将存储在 笔记本文档。

    例如,如果您将命令更改为%matplotlib notebook,结果应该会改变。此命令是为了确保它已设置为内联(如果尚未设置)。

    【讨论】:

      猜你喜欢
      • 2016-12-30
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 2019-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多