我很想理解下面解释的Jupyter笔记本中内联matplotlib
图的行为。我将展示三个案例:
案例1:导入并在 * 单独 * 单元格中绘制。在这种情况下,将在连续执行两个单元格一次后出现图。
**案例2:**在 * 同一 * 单元格中导入并绘制。在这种情况下,当单元格[1]
执行一次时,该图不会出现(下图中没有图)。**然而,当再次执行相同的单元格[1]
时,该图会出现。**这是作为下面的问题提出的问题。
**案例3:**将%matplotlib inline
添加到案例2中,全部都在一个单元格中。在这种情况下,正如预期的那样,在执行单元格一次后将显示图。所以这里没有问题。
问题
类似的帖子已经被问到here之前,只有提到案例2和3。ImportanceOfBeingErnest在链接帖子上的评论澄清了Jupyter的配置方式可能默认使用%matplotlib inline
。
所以我的问题是不是为什么案例1和案例2在没有%matplotlib inline
的情况下工作,而是我想了解
- 为什么案例2中的单元格
[1]
需要执行两次才能显示图,而案例1中的单元格[1]
和[2]
只执行一次就能工作?import matplotlib.pyplot as plt
在不同的单元格中调用/激活后端的方式是否不同?
系统规格
import sys
print (sys.version)
# 3.6.5 |Anaconda, Inc.
import matplotlib
print (matplotlib.__version__)
# 2.2.2
! jupyter notebook --version
# 5.5.0
1条答案
按热度按时间i5desfxk1#
我检查了你的代码,并从互联网上搜索了一些帖子,但没有找到一个明确的答案。我认为是matplotlib版本后端的问题。它不应该成为阻碍你继续工作/学习的问题。
在我的案例中,案例2****中的cell 1只执行一次**就可以实现,我的matplotlib信息如下所示:
我也想跟你确认几件事:
1.必须知道 %matplotlib inline 可以替换 * plt.show()*
1.plt.show() 是目前显示图表的更流行的方式。