如何在VSCode中配置Jupyter Notebook以进行数据可视化【教程】

10次阅读

vscode需通过官方扩展与python环境协同支持jupyter,内核未注册或未正确选择会导致绘图失败;应运行jupyter kernelspec list确认内核,用python -m ipykernel install注册,并在VSCode中手动选择;%matplotlib inline启用内联绘图,禁用widget/qt后端plotly需设置pio.renderers.default = ‘vscode’,Altair需安装对应labextension;遇问题优先重启内核或重载窗口。

如何在VSCode中配置Jupyter Notebook以进行数据可视化【教程】

VSCode 本身不内置 Jupyter 支持,必须通过官方扩展和 Python 环境协同工作;直接装个插件点开 .ipynb 文件却画不出图,大概率是内核没连上或 matplotlib 后端没配对。

确认已安装 Python 和 Jupyter 内核

VSCode 的 Jupyter 功能依赖本地 Python 环境中的 jupyter 包,不是靠插件“自带”的。如果你用 pip install jupyter 装过,但 VSCode 仍提示“找不到可用内核”,说明内核注册失败或环境未激活。

  • 在终端运行 jupyter kernelspec list,确认输出里有类似 python3 /path/to/share/jupyter/kernels/python3
  • 若没有,先激活目标 Python 环境(如 conda activate myenvsource venv/bin/activate),再运行 python -m ipykernel install --user --name myenv --display-name "Python (myenv)"
  • VSCode 中打开 Notebook 后,右上角 kernel 选择器必须手动选中你刚注册的名称,不能只依赖默认值

启用 inline 绘图并避免空白图

Matplotlib 默认后端在 VSCode Notebook 里可能不渲染,尤其 macOS 或远程 ssh 连接时。不显式配置,plt.show() 可能无效,plt.plot() 后什么也不显示。

  • 在 notebook 第一个 cell 执行:
    %matplotlib inline
  • 如果用了 seaborn,建议紧接着加
    import matplotlib.pyplot as plt; plt.rcParams['figure.figsize'] = (8, 5)

    避免图太小

  • 禁用交互式后端:不要写 %matplotlib widget%matplotlib qt,它们在 VSCode 中支持不稳定,容易报错 ModuleNotFoundError: No module named 'ipywidgets'

处理常见错误:No module named ‘plotly’ 或 Figure not shown

Plotly、Altair 等库需要额外设置才能在 VSCode Notebook 中正常渲染。不是 pip 安装完就能用——它们依赖前端扩展或特定渲染协议。

  • Plotly:必须安装 plotly[orca](用于静态导出)+ VSCode 插件 Plotly Viewer(非必需但推荐),并在代码开头加
    import plotly.io as pio; pio.renderers.default = 'vscode'
  • Altair:确保已运行 jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyterlab-plotly ——注意这是 jupyter lab 命令,VSCode 使用的是 Lab 协议兼容层,不装扩展会导致 ValueError: Renderer 'jupyterlab' is not registered
  • 遇到 Figure not shown,优先检查是否漏了 plt.show()(虽 %matplotlib inline 下可省略,但某些版本仍需)或 cell 没执行(VSCode 不自动运行所有 cell)

最常被忽略的一点:VSCode 的 Jupyter 支持实际走的是 Jupyter Server 协议,不是纯前端渲染。重启内核、清空 output、重载窗口(Ctrl+Shift+P → Developer: Reload window)比反复改代码更有效。特别是切换 conda 环境后,旧 kernel 进程可能还在跑,导致包版本错乱。

text=ZqhQzanResources