我很好奇了解Jupyter笔记本中内嵌matplotlib
图的下述行为。我将展示三种情况:
情况1:在不同的单元格中导入和绘制。在这种情况下,只需连续执行两个单元格一次,即可显示绘图结果。
情况2:在相同的单元格中导入并绘制。在这种情况下,执行单元格[1]
一次时,不会出现图形(下方图片为空)。当再次执行相同的单元格[1]
时,图形才会出现。这就是下面提到的问题。
情况3:在一个单元格中添加%matplotlib inline
,同时导入和绘制。在这种情况下,预期地,在执行单元格一次后,图形将出现。因此这里没有任何问题。
问题
之前曾提出过类似的帖子(点击此处),仅涉及情况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
notebook 6.4.3
、jupyter 1.0.0
和jupyterlab 3.1.7
中进行了测试。我投票关闭此问题,因为无法重现。 - Trenton McKinney