From 6f345611ebf65753f6a13c8853875b03c41364cd Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Tue, 7 Oct 2025 03:05:08 +0800 Subject: [PATCH] update --- docs/图表.md | 41 +++ src/oj/ai/analysis.vue | 28 ++- src/oj/ai/components/DifficultyChart.vue | 72 ------ src/oj/ai/components/DifficultyGradeChart.vue | 145 +++++++++++ src/oj/ai/components/DurationChart.vue | 55 +++- src/oj/ai/components/EfficiencyChart.vue | 236 ++++++++++++++++++ src/oj/ai/components/GradeChart.vue | 93 ------- src/oj/ai/components/Heatmap.vue | 42 +--- src/oj/ai/components/ProgressChart.vue | 142 ++++++----- .../ai/components/RankDistributionChart.vue | 134 ++++++++++ src/oj/ai/components/StreakStats.vue | 178 +++++++++++++ src/oj/ai/components/TagsChart.vue | 65 ----- src/oj/ai/components/TagsRadarChart.vue | 156 ++++++++++++ src/oj/ai/components/TimeActivityHeatmap.vue | 153 ++++++++++++ src/oj/store/ai.ts | 1 - src/utils/types.ts | 1 + 16 files changed, 1201 insertions(+), 341 deletions(-) create mode 100644 docs/图表.md delete mode 100644 src/oj/ai/components/DifficultyChart.vue create mode 100644 src/oj/ai/components/DifficultyGradeChart.vue create mode 100644 src/oj/ai/components/EfficiencyChart.vue delete mode 100644 src/oj/ai/components/GradeChart.vue create mode 100644 src/oj/ai/components/RankDistributionChart.vue create mode 100644 src/oj/ai/components/StreakStats.vue delete mode 100644 src/oj/ai/components/TagsChart.vue create mode 100644 src/oj/ai/components/TagsRadarChart.vue create mode 100644 src/oj/ai/components/TimeActivityHeatmap.vue diff --git a/docs/图表.md b/docs/图表.md new file mode 100644 index 0000000..1de026e --- /dev/null +++ b/docs/图表.md @@ -0,0 +1,41 @@ +📊 可以添加的图表类型 +1. 提交效率趋势图 (折线图) +数据来源: durationData 中的 submission_count / problem_count +展示内容: 每个时间段的提交效率(提交次数/完成题目数),值越接近1说明一次AC率越高 +价值: 反映刷题质量的提升 +2. 排名分布图 (直方图/箱线图) +数据来源: solved 数组中每道题的 rank 和 ac_count +展示内容: 用户解题排名的分布情况(如:前10%、10-30%、30-50%等区间的题目数量) +价值: 了解解题速度和竞争力 +3. 等级分布饼图/环形图 +数据来源: solved 数组中每道题的 grade +展示内容: S/A/B/C 各等级题目的数量和占比 +价值: 直观看出题目质量分布 +4. 标签雷达图 +数据来源: tags 对象 +展示内容: 多维度展示各类标签的掌握程度(可以归一化处理) +价值: 可视化知识点覆盖面 +5. 时间活跃度分析 (热力矩阵) +数据来源: solved 数组中的 ac_time +展示内容: 按星期几和时间段统计做题分布(如:工作日vs周末,早中晚时段) +价值: 了解学习习惯和时间规律 +6. 难度-等级关联散点图 +数据来源: solved 数组中的难度信息和 grade +展示内容: X轴为难度,Y轴为等级,每个点代表一道题 +价值: 分析在不同难度下的表现 +7. 做题加速度图 +数据来源: durationData +展示内容: 每个时间段完成题目数的变化率 +价值: 看出学习动力的变化趋势 +8. 竞赛题目占比 +数据来源: solved 数组中的 contest_id 和 contest_count +展示内容: 竞赛题 vs 常规题的数量对比 +价值: 了解竞赛参与情况 +9. 连续做题天数统计 +数据来源: heatmapData +展示内容: 最长连续做题天数、当前连续天数等 +价值: 激励持续学习 +10. 月度对比雷达图 +数据来源: durationData +展示内容: 多个维度(完成题目数、提交次数、等级、效率等)的月度对比 +价值: 全面评估进步情况 \ No newline at end of file diff --git a/src/oj/ai/analysis.vue b/src/oj/ai/analysis.vue index e20348d..3b4ebeb 100644 --- a/src/oj/ai/analysis.vue +++ b/src/oj/ai/analysis.vue @@ -12,15 +12,18 @@ /> - - - + + + - - - - - + + + + + + + + @@ -30,6 +33,7 @@ + @@ -48,13 +52,15 @@ diff --git a/src/oj/ai/components/DifficultyGradeChart.vue b/src/oj/ai/components/DifficultyGradeChart.vue new file mode 100644 index 0000000..51b9170 --- /dev/null +++ b/src/oj/ai/components/DifficultyGradeChart.vue @@ -0,0 +1,145 @@ + + + + diff --git a/src/oj/ai/components/DurationChart.vue b/src/oj/ai/components/DurationChart.vue index b73334d..e1912d4 100644 --- a/src/oj/ai/components/DurationChart.vue +++ b/src/oj/ai/components/DurationChart.vue @@ -1,5 +1,10 @@