当前位置: 首页 > 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()

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


http://www.dtcms.com/a/100667.html

相关文章:

  • 基于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 的详细说明,内容结构清晰,涵盖核心功能、使用场景及实用技巧
  • skynet中跨协程异步响应的场景
  • k8s污点与容忍
  • golang 的io与os包中的常用方法
  • 5G网络中A端口和Z端口
  • javaSE————文件IO(2)、
  • 【LeetCode 题解】算法:29.两数相除
  • WordPress.com搭建网站指南
  • 力扣HOT100之矩阵:73. 矩阵置零
  • B3637 最长上升子序列
  • OpenLayers:如何使用渐变色