IPython 内核如何在执行代码单元后显示图像?

时间:2021-02-25 11:42:30

标签: python jupyter-notebook ipython jupyter

我刚刚开始使用“Jupyter notebooks”。与 REPL 相比的主要好处似乎是可以以 pyplot 的方式直观地打印计算出的表达式。例如,如果我创建一个“代码单元”:

import matplotlib.pyplot as plt
x = plt.plot([1,2,3,4])

然后在单元格下方,笔记本显示一个绘图。但这是怎么发生的呢?我没有调用 plt.show() 或其他任何东西来显示图像。 Jupyter 如何从当前执行环境中获取此图像? Jupyter 如何知道是否显示图像?

如果我创建包含 plt.plot([2,4,6,8]) 的后续代码单元格,则笔记本会显示一个仅包含行 [2,4,6,8] 的新图。它不包含前一个单元格的前一行 [1,2,3,4]。但这不是我对使用 pyplot 的期望。

我的猜测是 Jupyter 在每个代码单元后运行类似 plt.savefig(...) 的东西,然后在浏览器中显示图像(如果它不是空白的)。但这只是一个猜测,我在文档中的任何地方都看不到它。

编辑:事实证明 Jupyter 实际上并没有专门的 Python 知识。 It has many "kernels" (plugins),其中之一是 IPython 内核。所以问题是IPython内核如何获取要显示的图像。

IPython 内核如何在执行代码单元后获取要显示的图像? IPython 内核语义的文档在哪里?

0 个答案:

没有答案