plt.show()不显示图片

改成显示图片

将Matplotlib后端替换为支持窗口展示的交互式后端。常用的后端有

TkAgg:依赖 Tkinter(Python 通常自带,无需额外安装,兼容性强)。

1
2
3
4
5
6
7
# 第一步:先导入 matplotlib 核心模块,指定 TkAgg 后端
import matplotlib
matplotlib.use('TkAgg') # 关键:必须在 import matplotlib.pyplot as plt 之前执行

# 第二步:再导入 matplotlib.pyplot 用于绘图
import matplotlib.pyplot as plt

改成保存为图片,不使用show

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 第一步:先指定 Agg 后端(放在所有 matplotlib 相关导入之前)
import matplotlib
matplotlib.use('Agg') # 核心配置:保留 Agg 后端,兼容所有环境

# 第二步:再导入 matplotlib.pyplot 用于绘图
import matplotlib.pyplot as plt

# 第三步:保存图表到本地(替换 plt.show())
# 1. 自动调整子图间距,避免标签/标题重叠(可选,推荐添加)
plt.tight_layout()

# 2. 核心:保存图片文件(关键参数详解)
plt.savefig(
'training_result.png', # 图片文件名(支持 .png、.jpg、.svg 等格式)
dpi=300, # 分辨率:300 DPI(高清,适合查看和打印,默认100)
bbox_inches='tight' # 去除图片边缘多余白边,让图表更紧凑
)

# 3. 关键补充:关闭图表对象,释放内存(避免多图表叠加混乱)
plt.close()