Prhub

#21653 [diffusion] Fix dashboard chart display issues

原始 PR 作者 mickqian 合并时间 2026-03-30 12:02 文件变更 1 提交数 2 评论 2 代码增减 +11 / -4

执行摘要

扩展 diffusion 仪表板趋势历史至 14 次运行,优化图表图例和 y 轴缩放以提高可读性。

根据PR body,变更旨在解决三个显示问题:扩展趋势历史从7到14次运行(约两周数据)以提供更长的趋势视图;移动图例从右上到右下以避免重叠数据点标签;修复y轴缩放,使用数据范围限制加30%填充代替bottom=0,防止如wan22_ti2v等案例中数值聚集在图表顶部。

对于CI工程师和关注diffusion测试的团队成员,建议阅读此PR以了解图表生成的优化点;代码变更简洁,可直接用于改进类似仪表板设计,特别是y轴缩放逻辑的边界处理值得借鉴。

讨论亮点

review中,gemini-code-assist[bot]指出y轴缩放逻辑在全零数据时会导致y_range为零,产生无效图表,建议使用max(y_max * 0.1, 0.1)处理此边界情况。此建议在第二个提交中被采纳,修复了潜在的正确性问题,确保图表生成的稳健性。

实现拆解

仅修改一个文件:scripts/ci/utils/diffusion/generate_diffusion_dashboard.py。关键改动点:

1) 将MAX_HISTORY_RUNS从7改为14,并动态更新标题以反映实际运行数;
2) 调整图例位置从'upper right'到'lower right',并添加framealpha=0.8透明度;
3) 重写y轴缩放逻辑,计算数据最小最大值,设定范围并添加30%填充,处理全零数据的边界情况。

文件 模块 状态 重要度
scripts/ci/utils/diffusion/generate_diffusion_dashboard.py CI/diffusion 仪表板生成 modified 7.0

关键符号

_chart_label

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

y 轴缩放边界情况处理 正确性

gemini-code-assist[bot] 指出,如果所有数据点为零,y_range 计算会得到 0,导致 ax.set_ylim(bottom=0, top=0),产生无效图表,并提供了修复建议代码。

结论:采纳建议,在第二个提交中添加条件处理:当 y_max - y_min 为零时,使用 max(y_max * 0.1, 0.1) 确保非零范围。 · 已解决

风险与影响

主要风险是原y轴缩放逻辑在全零数据场景下会失败,但已在review建议后修复。其他风险低:变更仅限于CI仪表板图表生成脚本,不影响核心系统功能;兼容性无问题,因为仅用于内部nightly测试任务。

影响范围小:仅影响nightly CI任务'nightly-test-diffusion-comparison'的仪表板图表显示,对用户仅内部工程师或测试人员可见,提高图表可读性和趋势分析能力,无外部用户或系统性能影响。

边界情况处理不足

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论