为什么 jupyter-notebook 没有 运行 交互式绘图?

Why jupyter-notebook doesn't run interactive plots?

我看到 jupyter-lab 可以显示一些交互式图,例如 plot.ly or altair,但是当我在 jupyter-notebook 中绘制相同的代码时,没有任何图

import altair as alt
from vega_datasets import data

source = data.cars()

alt.Chart(source).mark_point().encode(
   x='Horsepower',
   y='Miles_per_Gallon',
   size='Acceleration'
)

输出只是一个 VegaLite 2 对象,但没有任何绘图。

为什么我不能使用 jupyter-notebook 绘制交互式图表?

Jupyter Notebook 是一款已经存在了一段时间的应用程序。它非常简洁,但主要是它是您和 Python 终端之间的一层。因此,您可以编写 bigger/more 比在终端中轻松完成的复杂代码,并且能够返回并进行更改,而无需重复许多其他代码行。

Jupyter Lab 是开发 Jupyter Notebook 的同一群人的新项目。 Jupyter Lab 更像是一个极简主义者 IDE。虽然 Jupyter Notebook 只允许您 运行 笔记本,但在实验室中您可以 运行:

  1. 文本文件(用于输入或构建 python 模块)
  2. Jupyter 笔记本
  3. Bash 或其他终端
  4. Python 航站楼

您可以初始化它们的任意组合,并根据需要对它们进行布局。

所以你选择哪一个取决于你的项目,我发现两者对于一次性数据操作或原型代码都是非常有用的应用程序。

要在 Jupyter Notebook(不是 JupyterLab)中显示 altair 绘图,您需要安装 vega python package and enable the renderer by running alt.renderers.enable('notebook'). This is mentioned explicitly in Altair's installation instructions

Altair's documentation 中有更多故障排除信息,包括针对您所看到的特定输出的故障排除。