3

So I went through some questions being posted about the usage of %matplotlib inline function in Jupyter Notebook, I do understand that "%matplotlib inline sets the backend of matplotlib to the 'inline' backend" & "When using the 'inline' backend, your matplotlib graphs will be included in your notebook, next to the code". But, I don't see any difference in my plot results with or without the use of "%matplotlib inline". Can someone explain this to me if I am misunderstanding something? Here's a simple code I have tried:

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')

In the next code, I just took off the %matplotlib inline and it gives still gives me the same result. What is the point of using or not using the "%matplotlib inline" function then?

4

2 回答 2

4

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

于 2019-11-20T17:29:03.253 回答
0

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

要设置它,在执行任何绘图或导入之前,matplotlib您必须执行%matplotlib magic command. 这为 IPython 执行了必要的幕后设置,以便与matplotlib; 但是,它实际上并没有执行任何 Python 导入命令,也就是说,没有将名称添加到命名空间。

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

%matplotlib inline

使用这个后端,绘图命令的输出会在 Jupyter 笔记本等前端内联显示,直接在生成它的代码单元下方。然后,生成的图也将存储在笔记本文档中。

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

于 2019-11-19T21:58:36.520 回答