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

如何让Jupyter Notebook绘图仅显示图像而非执行命令输出

解决Jupyter Notebook绘图时只显示图像、隐藏执行信息的问题

我完全懂你在演示场景下的需求——就想展示干净的matplotlib图像,不想被一堆执行信息抢风头,之前的配置偶尔失效确实闹心。试试下面这些更稳定的方案:

  • 调整IPython输出行为,只保留最后结果
    你之前设置的InteractiveShell.ast_node_interactivity = "all"会让Jupyter显示所有执行步骤的信息,这正是问题所在。改成只显示最后一个表达式的结果就好:

    from IPython.core.interactiveshell import InteractiveShell
    InteractiveShell.ast_node_interactivity = "last_expr"
    

    要是你有变量赋值的场景,也可以用"last_expr_or_assign",它会显示最后一个表达式或赋值的结果,同样不会输出一堆冗余信息。

  • 绘图代码末尾加分号抑制输出
    这是个简单又好用的小技巧,在plt.show()或者绘图语句的末尾加个分号,就能挡住matplotlib返回的对象信息:

    import matplotlib.pyplot as plt
    %matplotlib inline
    
    plt.plot([1, 3, 2, 4])
    plt.title("Demo Plot")
    plt.show();  # 分号帮你隐藏执行信息
    
  • 组合配置强化效果
    把上面两种方法结合起来,再配合关闭matplotlib的交互模式,基本能彻底解决问题:

    %matplotlib inline
    from IPython.core.interactiveshell import InteractiveShell
    import matplotlib.pyplot as plt
    
    InteractiveShell.ast_node_interactivity = "last_expr"
    plt.ioff()  # 关闭交互模式,避免额外的后台输出
    
    # 绘图示例
    plt.scatter([1,2,3], [4,5,6])
    plt.show();
    
  • 多图场景清理残留对象
    如果是绘制多个图的情况,偶尔会有残留的图对象导致输出混乱,绘图后可以用plt.close()清理当前图:

    plt.plot([1,2,3])
    plt.show();
    plt.close()  # 清理当前图对象,避免后续输出干扰
    

这些方法我自己在演示时经常用,稳定性比单独设置"all"好太多,基本能保证你的Notebook只展示干净的图像~

内容的提问来源于stack exchange,提问作者A.Papa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:45:56