基于单元格内容的Jupyter Notebook中matplotlib内联图的行为

dojqjjoe  于 2023-05-18  发布在  其他
关注(0)|答案(1)|浏览(218)

我很想理解下面解释的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
i5desfxk

i5desfxk1#

我检查了你的代码,并从互联网上搜索了一些帖子,但没有找到一个明确的答案。我认为是matplotlib版本后端的问题。它不应该成为阻碍你继续工作/学习的问题。
在我的案例中,案例2****中的
cell 1只执行一次**就可以实现,我的matplotlib信息如下所示:

import matplotlib
print(matplotlib.__version__)
3.4.3

我也想跟你确认几件事:
1.必须知道 %matplotlib inline 可以替换 * plt.show()*
1.plt.show() 是目前显示图表的更流行的方式。

相关问题