必须调用plt.show()或plt.savefig()才能显示或保存图表;仅plt.plot()不触发渲染,图仍驻留内存。

用 plt.plot() 画折线图,别漏掉 plt.show() 或 plt.savefig()
直接调 plt.plot(x, y) 只是把数据塞进当前 figure,画面不会自动弹出或保存。常见错误是运行完没反应——其实是图还“藏”在内存里。必须显式触发渲染或导出:plt.show() 弹窗查看(适合调试),plt.savefig("plot.png") 写入文件(适合批量导出)。二者可共存,但注意 savefig() 要在 show() 前调用,否则保存的可能是空图。
导出图片时分辨率和尺寸不达标?用 dpi 和 figsize 控制
默认导出的图模糊、太小,多半是没设参数。关键两个参数:figsize=(width, height) 控制画布物理尺寸(单位英寸),dpi=300 控制每英寸点数。例如:
plt.figure(figsize=(10, 6), dpi=300)<br>plt.plot(x, y)<br>plt.savefig("output.png", bbox_inches="tight")其中 bbox_inches="tight" 能自动裁掉空白边距,避免标题或坐标轴被截断。中文标签显示为方块?得手动指定字体和 plt.rcParams
Matplotlib 默认不支持中文字体,plt.xlabel("时间") 会变成一堆方块。解决方法不是改系统字体,而是临时覆盖配置:
plt.rcParams["font.sans-serif"] = ["SimHei", "Arial Unicode MS", "DejaVu Sans"]<br>plt.rcParams["axes.unicode_minus"] = False
SimHei 是 Windows 常见中文字体名,macOS 可换 "PingFang SC",Linux 用 "WenQuanYi Zen Hei"。第二行防止负号显示为方块。多条折线叠在一起看不清?靠 label + plt.legend() 区分
画多组数据时,光靠颜色不够直观:
plt.plot(x1, y1, label="训练损失")<br>plt.plot(x2, y2, label="验证损失")<br>plt.legend() # 必须加这句才显示图例图例位置可微调:
plt.legend(loc="upper right"),常用值还有 "lower left"、"best"。如果图例遮挡数据,加 plt.legend(bbox_to_anchor=(1.05, 1)) 把它移到图右侧外。导出高质量图的关键不在画得多漂亮,而在每一步是否显式控制了画布、字体、尺寸和输出路径——尤其 savefig() 的调用时机和 bbox_inches 参数,漏掉一个就可能白忙活。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











