%matplotlib inline 过时了吗?

Posted

技术标签:

【中文标题】%matplotlib inline 过时了吗?【英文标题】:Is %matplot inline obsolete? 【发布时间】:2020-09-16 12:16:12 【问题描述】:

根据我对this question 的理解,使用了%matplotlib inline,因此可以在 Jupyter 中显示数字。但是在 Jupyter 中显示的数字没有使用 %matplotlib inline 非常好。例如下面的代码:

import numpy as np
import matplotlib.pyplot as plt

plt.plot(np.random.randn(50).cumsum())
plt.show()

那么%matplotlib inline 是过时的还是我误解了它的目的?

【问题讨论】:

到目前为止,这个谜似乎没有答案。检查我一年多前的这个未回答的问题:(https://***.com/questions/54329901/behavior-of-matplotlib-inline-plots-in-jupyter-notebook-based-on-the-cell-content 我不确定我会称之为过时的,而是默认的。如果你运行print(plt.get_backend()),你会看到它从一开始就是ipykernel.pylab.backend_inline。如果您切换到其他后端,您可以使用该魔法切换回来。 @jayveesea 我认为您应该在回答问题时提交您的评论作为答案。 【参考方案1】:

jupyter notebook 中默认的 matplotlib backend 是 inline。您可以在加载 matplotlib 后使用 print(plt.get_backend()) 进行检查。例如:

import matplotlib.pyplot as plt
print(plt.get_backend())

返回module://ipykernel.pylab.backend_inline

如果您已切换到其他后端,则可以使用魔法 %matplotlib 切换回 inline。以下单元格在笔记本中运行时可以说明这一点。

在[100]中:

import matplotlib.pyplot as plt
plt.plot(np.random.randn(50).cumsum())

在 [101] 中:

%matplotlib notebook
plt.plot(np.random.randn(50).cumsum())

在 [103] 中:

%matplotlib inline
plt.plot(np.random.randn(50).cumsum())

【讨论】:

以上是关于%matplotlib inline 过时了吗?的主要内容,如果未能解决你的问题,请参考以下文章

[Python]PyCharm中%matplotlib inline报错

%matplotlib inline

Memcached真的过时了吗

%matplotlib inline的含义

Jupyter%matplotlib inline

jupyter中%matplotlib inline报错