You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

命令行运行IPython脚本时实现Matplotlib绘图浏览器内联顺序显示

解决IPython命令行脚本绘图内联显示的问题

一、修改脚本实现单浏览器窗口内联绘图

你现在遇到的多窗口弹出问题,根源是当前使用的TkAgg后端会为每个图表创建独立窗口。要实现类似Jupyter的单浏览器窗口内联显示,只需切换到交互式浏览器后端,步骤如下:

  1. 安装依赖包
    首先确保安装ipympl(Matplotlib的Jupyter交互式后端依赖),在命令行执行:
pip install ipympl
  1. 调整脚本的魔法命令
    把脚本里的%matplotlib替换为%matplotlib notebook(或更新的%matplotlib widget,支持更丰富的交互操作),修改后的脚本如下:
# File: plotit.ipy
# toy ipython plotting example
import numpy as np
import matplotlib.pyplot as plt
%matplotlib notebook  # 替换原有的%matplotlib,切换到浏览器后端
t = np.linspace(0, 10, 100)
y1 = 5*t
y2 = -0.5*t
y3 = 2*t**2
# 第一个内联图表
plt.figure()
plt.plot(t,y1)
plt.show()
# 第二个内联图表
plt.figure()
plt.plot(t,y2)
plt.show()
# 第三个内联图表
plt.figure()
plt.plot(t,y3, '.')
plt.show()
  1. 运行脚本
    保持原来的运行方式即可:
C:\> ipython
In [1]: %run plotit.ipy

此时会自动弹出一个浏览器窗口,三个图表会按代码顺序在这个窗口内依次显示,完全复刻Jupyter的内联效果,不会再弹出多个独立窗口。

二、Jupyter文档转IPython脚本并保持内联绘图

完全可以实现,具体步骤如下:

  1. 将.ipynb转换为.py脚本
    使用Jupyter自带的nbconvert工具完成转换,命令行执行:
jupyter nbconvert --to script your_notebook.ipynb

执行后会生成一个与原笔记本同名的.py脚本文件。

  1. 补充后端设置
    打开转换后的脚本,在开头添加%matplotlib notebook(或widget)魔法命令——因为转换过程不会自动保留Jupyter的后端配置,必须手动添加才能确保内联效果。

  2. 运行转换后的脚本
    同样在命令行IPython中用%run命令执行脚本,就能在单个浏览器窗口内按顺序内联显示所有图表,效果与原Jupyter笔记本完全一致。

小提示

  • 若使用%matplotlib widget,图表会支持缩放、平移等交互操作,体验比notebook后端更好,建议优先选择(需确保Matplotlib版本≥3.1)。
  • 如果浏览器未自动弹出,可以查看IPython的输出日志,里面会给出一个本地访问URL,手动复制到浏览器打开即可。

内容的提问来源于stack exchange,提问作者Bimo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:49:28