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

PyCharm环境下Python matplotlib.pyplot如何适配fig.show()方法

fig.show()窗口闪退的根本原因

Matplotlib官方定义中,fig.show()属于Figure实例的非阻塞显示方法,在默认的脚本非交互式运行环境下,不会持有GUI事件循环的存活引用,脚本执行完所有代码后Python进程会直接终止,关联的绘图窗口也会被系统同步回收,因此会出现窗口闪现1秒后自动关闭的现象。而常用的plt.show()是全局阻塞方法,会主动暂停进程执行,直到所有绘图窗口被手动关闭才会继续执行后续代码。

PyCharm环境下适配fig.show()的设置方案

如果要保留fig.show()的调用方式不修改代码,可以通过修改PyCharm运行模式实现窗口正常驻留:

方案1:全局开启交互式运行(所有脚本生效)

  • 打开PyCharm设置页:顶部菜单栏依次点击 File > Settings(Windows/Linux)/ PyCharm > Preferences(MacOS),也可以使用快捷键 Ctrl+Alt+S(Windows/Linux)/ Command+,(MacOS)
  • 依次进入左侧菜单 Build, Execution, Deployment > Console > Python Console
  • 勾选右侧配置项中的 Run with Python Console,点击应用保存设置
  • 后续所有Python脚本都会默认在交互式控制台中运行,进程不会在脚本代码执行完后直接退出,fig.show()生成的窗口可正常保持显示

方案2:单脚本配置(仅针对指定脚本生效,不修改全局设置)

  • 点击PyCharm右上角运行配置下拉框,选择Edit Configurations
  • 在左侧列表中找到你需要运行的对应脚本的配置项
  • 勾选右侧配置页中的 Run with Python Console,点击应用保存即可
无设置修改的兼容方案

如果不想改动PyCharm设置,也可以在现有代码的fig.show()后添加一行阻塞代码,手动保持进程存活:

fig.show()
# 添加以下任意一行都可实现阻塞
plt.show(block=True)
# 或者用input手动等待输入:input("按回车关闭窗口")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:18:02