关系、趋势与时间序列

本节目标

区分横截面关系、真实时间趋势与类别比较;正确处理过度重叠、聚合粒度、缺失时段和发布事件,并避免从图形相关性推断因果。

散点图展示关系,不证明因果

每个点代表同一单元上的两个数值,如单次任务 token 数与延迟。颜色可编码版本,形状可编码任务,但通道太多会难读。大量重叠时使用透明度、hexbin 或分层抽样,并报告抽样方法。

相关关系可能由第三变量造成:复杂任务同时增加 token 与延迟。应按任务类型分层,或在模型中控制共同因素;不能从一张散点图断言“token 导致失败”。

当点数很多时,先报告总数,再用透明度、hexbin 或二维密度显示重叠;若抽样,必须固定随机种子并说明抽样规则。颜色编码类别时再加形状或直接标签,颜色映射连续值时必须给 colorbar 与单位。

时间序列

折线图适合有顺序的时间数据。需要明确:

  • 时间戳与时区;按小时、天还是周聚合。
  • 缺失时间段是 0 还是未采集,不能用连线默认为连续。
  • 发布、配置变更和事故等事件标记。
  • 原始值、移动平均与置信带各自含义。

移动平均能降噪,也会延迟并掩盖尖峰。应保留淡色原始序列或同时报告异常事件。

聚合粒度是结论的一部分:分钟峰值可能在日均值里消失,按自然日聚合也可能受时区和夏令时影响。部署前后比较应预先规定窗口,并把流量、任务构成和监控缺口一起核对;一条“发布后下降”的线不足以证明发布造成下降。

类别比较

条形长度从共同零基线开始最易比较。类别很多时水平条形图并按数值或业务顺序排列。不要用折线连接无顺序类别,这会暗示连续趋势。

双 Y 轴容易让任意缩放制造同步感。优先用共享 X 的上下两个面板、标准化指数或散点图明确比较关系。

练习

设计一张“每天成功率与调用量”的图。说明如何展示低流量日的不确定性、部署事件和缺失数据,并给出不用双 Y 轴的布局。

建议答案:上下两个共享日期轴的面板;上面画成功率点与置信区间并标出每日分母,下面画调用量。用垂直事件线标部署,在缺失日期处断线而不是补 0;低流量日区间自然更宽。若要判断量与成功率的关系,另画“调用量—成功率”散点并按任务构成分层。

掌握检查

  • 我能说明散点图中的每个点是否独立,以及可能的共同原因。
  • 我会在大量点时处理 overplotting,并记录抽样或聚合方法。
  • 我能区分缺失、零值与未采集,时间线在缺失处不会无条件连线。
  • 我会用共享 X 的上下子图替代双 Y 轴。
  • 我不会用折线连接无顺序类别,也不会从视觉相关直接声称因果。

下一步:误差与不确定性。

参考资料

资料核验日期:2026-07-14;示例原则按 Matplotlib 3.11.0 文档核对。