matplotlib 看板设计:先让读者看懂数据,再增加装饰
运营看板的失败往往不是颜色不好看,而是读者无法在几秒内回答“发生了什么”。在写 matplotlib 代码前,先把一个图要支持的判断说清楚:是比较渠道差异、观察时间趋势,还是定位异常日。一个图只服务一个主要问题,能减少误读。
选择图形时先考虑数据关系
按天的订单量适合折线图,但日期要按真实时间排序,不能按字符串字典序排列。比较少量渠道时使用并列柱图,并在轴标题写清单位;类别过多则改成排序条形图,或只展示前若干项并说明其余项如何处理。双轴图容易让两条线看起来相关,除非有清晰理由,否则拆成上下两个共享时间轴的图。
颜色应承担稳定的语义,例如实际值始终使用一种颜色、目标值使用另一种颜色;不要每张图随机换色。对色觉差异用户,不只依赖颜色区分,可使用线型、标记和直接标签。图例位置不能遮挡数据,导出前要检查中文字体是否被替换成方框。
数据处理也要可追溯
绘图前保存聚合表,而不是只保存 PNG。表中列出时间范围、过滤条件、缺失值处理方法和指标版本。若某天数据尚未到齐,图上应标记“数据延迟”或排除该点,不能让读者把未完成数据当成下跌。
可以把绘图函数的输入限定为整洁表:一列时间、一列数值和必要的分类列。函数内不再偷偷读取文件或修改全局样式,单元测试便能用小 DataFrame 验证坐标轴标签、排序和空数据处理。
输出前的人工检查
用桌面尺寸和移动端宽度各导出一次,检查刻度是否重叠、数字是否被裁切、零值是否清楚。再用一份含缺失日期与极端值的样本,确认图形不会把缺失连成直线,也不会因一个异常值让其余趋势看不见。清晰的看板靠这些具体检查,不靠堆叠图表类型。
导出流程还要检查文件名、尺寸和元数据。不同日期的图不应覆盖同名文件,导出图片的分辨率要匹配嵌入位置,PDF 和网页中的标题要一致。若图中显示四舍五入后的数值,鼠标提示或下载表应保留原始精度,避免读者用展示值进行精确计算。
将视觉检查纳入发布清单后,设计调整也能被复验:修改主题色或字体时,重跑固定样本并比较关键标注。这样维护者不会只在自己的高分辨率屏幕上确认一次就发布。
看板提供替代访问方式。为图片补充简短文字说明,为关键图表提供可下载的数据表;仅靠颜色的表达会让部分读者无法获得相同信息。说明文字只描述观察到的变化,不把未经验证的业务原因混入其中。
若同一图表被嵌入多处页面,统一由一个绘图模块产生,避免各页面复制参数后出现标题和口径差异。修改指标时一次更新,才能保持阅读体验一致。
指标数据需要更新时,在图例或页面上显示最近成功刷新时间。刷新失败不能默默保留旧图并标成今天;应注明数据延迟。用户据此判断是否等待,而不会把系统故障误读成业务趋势。
图表验收项
- 确认标题与指标口径保持一致
- 确认轴标签说明数值的单位
- 确认缺失值不会被误连成曲线
- 确认极端值不会遮蔽主要趋势
- 确认色彩外还有文字或线型区分
- 确认导出表与图形使用同批数据