%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 过时了吗?的主要内容,如果未能解决你的问题,请参考以下文章