当前位置: 首页 > news >正文

解决:在运行 plt.show()`时,程序会等待你手动关闭图片窗口才能继续往下执行

你这个问题本质是:

在运行 plt.show() 时,程序会等待你手动关闭图片窗口才能继续往下执行。

这其实是 matplotlib 的默认行为 —— 它会弹出一个交互式窗口让你“看完图再走”。


✅ 为什么会这样?

你在程序中使用了:

import matplotlib
matplotlib.use('TkAgg')

然后绘图后使用了:

plt.show()

这两个配合起来,会打开一个交互式窗口,阻塞主线程,直到你手动关闭它,所以程序最后会“卡住”。


✅ 解决方案(根据你的需求选)


✅ 方法1:不显示图,只保存图像

如果你只是想保存图,不需要弹窗看图,你可以干脆 删掉或注释掉所有 plt.show()

# plt.show()  # 不再弹窗

你已经使用 plt.savefig() 保存图像了,plt.show() 只是让你看图的,不必须!


✅ 方法2:保存图并关闭窗口(不等待)

如果你想保存 + 自动关闭,也可以在 plt.savefig() 后调用:

plt.close()

比如改成这样:

plt.savefig('ROC-figure')
plt.close()

这会把图保存后立刻关掉,程序不会等你点“×”。


✅ 方法3:切换为非交互式后端

如果你不想看到弹窗,又懒得删 plt.show(),也可以一开始切换为非交互式后端,例如用 Agg

import matplotlib
matplotlib.use('Agg')

这会告诉 matplotlib 用“纯保存不弹窗”的方式绘图(适合服务器、自动化训练场景)。


✅ 推荐你这样修改前几行代码

import matplotlib
matplotlib.use('Agg')  # 改成非交互式后端
import matplotlib.pyplot as plt

然后在绘图代码后这样写:

plt.savefig('some_figure.png')
plt.close()

这样你的程序不会“卡住等你关图”,执行完会自动退出 ✔️


相关文章:

  • 深圳建立网站公司网站拼多多女装关键词排名
  • 大江网站建设提高工作效率的软件
  • 格尔木哪里有做网站的seo课程培训
  • 唐山企业网站自己怎样推广呢
  • 做网站分几步长沙网红打卡景点排行榜
  • wordpress代码执行seo怎么优化网站排名
  • 基于YOLO11/WVP的电梯系统开发-模型训练与rk3568移植
  • HarmonyOS NEXT——【鸿蒙实现录音识别(语音转文字)】
  • Node.js 技术原理分析系列 —— Node.js 调试能力分析
  • 正则化是什么?
  • Anolis OS 8.4修复CVE-1999-0554漏洞记录
  • 操作系统——线程的概念和特点
  • ssm框架之Spring
  • BIM/I-FGSM对抗样本生成算法实现(pytorch版)
  • Java-01-源码篇-JUC并发编程-常用类
  • 并查集基础模板(java实现)
  • 【力扣hot100题】(019)旋转图像
  • Kubernetes深度解析:云原生时代的容器编排引擎
  • 树莓派5从零开发至脱机脚本运行教程——8.设置静态IP地址篇
  • 【行测】资料分析
  • XML标签格式转换为YOLO TXT格式
  • 通义千问Qwen2.5-Omni:全模态实时交互的下一代多模态大模型
  • 小蓝和钥匙
  • 机器学习stats_linregress
  • Spring Boot 与 Spring Integration 整合教程
  • SQLiteBrowser 的详细说明,内容结构清晰,涵盖核心功能、使用场景及实用技巧