matplotlib 升级检查:渲染结果、字体与后端差异
matplotlib 升级通常不会让业务逻辑报错,却可能让字体回退、坐标范围或布局发生变化。图能保存下来,不代表展示语义没变。
建立一组视觉回归样例
选择中文字体、双轴、日期刻度、图例和紧凑布局等常用场景,固定数据与画布尺寸。升级前后既比较图片,也核对轴范围、标签和颜色映射。
运行环境也属于输入
本地交互后端、服务器无头后端和不同操作系统的字体配置不一样。测试记录要包含 backend、字体文件和输出格式,容器里则把字体作为依赖管理。
- 检查高 DPI 输出的文字与线宽。
- 验证 SVG/PDF 中字体是否正确嵌入。
- 避免依赖未声明的全局 rcParams。
把差异分成样式和含义
边距轻微变化可以由设计验收,刻度被截断或颜色含义变化则应阻止发布。不要用降低图片比较阈值把真正的问题一起忽略。
可视化升级的底线很简单:读者看到的含义不能悄悄变。字体、后端和布局都要进入测试清单。