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

如何阻止pyplot.subplots()在VS Code的Jupyter Notebook中显示图像?

解决VS Code Jupyter Notebook中matplotlib自动显示Figure的问题

这是不是VS Code特有行为?

不是。不管是VS Code里的Jupyter Notebook,还是网页版的Jupyter Notebook,默认都会把单元格最后一个表达式的返回值渲染输出。plt.subplots()会返回包含Figure和Axes的元组,Notebook会识别这个元组里的Figure对象并自动显示图像,这是Jupyter Notebook的通用机制,并非VS Code独有。

怎么阻止自动显示?

给你几个实用的解决办法:

  • 添加无返回值的收尾语句:在赋值语句后面加一行不返回图像相关对象的代码,让单元格最后一个表达式的返回值不是Figure/Axes元组,比如:
    import matplotlib.pyplot as plt
    fig, ax = plt.subplots()
    pass
    
  • 手动关闭当前Figure:创建对象后立刻调用plt.close(fig),关闭这个Figure的自动显示,后续需要查看时再调用fig.show()或者plt.show():
    import matplotlib.pyplot as plt
    fig, ax = plt.subplots()
    plt.close(fig)
    
  • 关闭matplotlib交互式模式:在代码开头添加plt.ioff(),关闭交互式显示逻辑,这样创建任何Figure都不会自动弹出,需要显示时再打开交互式模式(plt.ion())或者手动调用显示方法:
    import matplotlib.pyplot as plt
    plt.ioff()  # 关闭交互式模式
    fig, ax = plt.subplots()  # 不会自动显示
    # 后续需要显示时执行
    # fig.show()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 06:15:29