错题分析雷达图:可视化量化短板 + 自动生成阶段提升目标 HarmonyOS 5.0.0+
·
适配 HarmonyOS 5.0.0+,重点聚焦学情可视化:
🕸️ 错题分析雷达图:可视化量化短板 + 自动生成阶段提升目标(第24篇)
“我到底哪块弱?该怎么提分?”
AI 不仅要识题解题,还要明确指出差在哪里、该如何补。
本篇带你构建一个错题分析雷达图系统,实现:
✅ 自动汇总错题数据 → 各类知识点得分
✅ 绘制雷达图展示强项与短板
✅ 系统自动生成阶段目标建议
✅ 支持阶段对比 + 打卡跟踪提升过程
✅ 技术能力模块(HarmonyOS 5+)
| 能力模块 | 模块说明 |
|---|---|
| 错题统计 | 基于第21篇错题本 JSON 文件结构 |
| 图表绘制 | ECharts(ArkTS 封装)或自定义 SVG 雷达图 |
| 阶段目标生成逻辑 | 依据低分项建议目标值(如目标 ≥ 80 分) |
| 打卡记录 + 跟踪分析 | JSON 存储 + 时间轴视图 / 提升记录可视化 |
🎯 示例视觉效果
[知识点维度雷达图]
+
[短板分析与建议]
+
[目标设置 + 打卡记录]
📦 Step1:载入错题 JSON 数据(复用第21篇)
async function loadWrongs(): Promise<any[]> {
const files = await fs.listFile('/data/user/wrongs')
const records = []
for (const file of files) {
const text = await fs.readText(`/data/user/wrongs/${file}`)
records.push(JSON.parse(text))
}
return records
}
📦 Step2:统计各知识点正确率(得分简化处理)
function generateKnowledgeRadar(records: any[]): { name: string, value: number }[] {
const total: Record<string, number> = {}
const wrong: Record<string, number> = {}
for (const item of records) {
const key = item.category || '未分类'
total[key] = (total[key] || 0) + 1
wrong[key] = (wrong[key] || 0) + 1 // 此处为错题,全部计入 wrong
}
return Object.keys(total).map(name => ({
name,
value: Math.max(100 - (wrong[name] / total[name]) * 100, 20) // 模拟得分,最低20
}))
}
📦 Step3:生成阶段目标建议
function generateGoals(radarData: { name: string, value: number }[]): { name: string, goal: number }[] {
return radarData.map(d => ({
name: d.name,
goal: d.value >= 80 ? d.value : 80
}))
}
📦 Step4:图表展示(ArkTS + ECharts)
// 使用 ArkTS ECharts 封装组件示意(请在实际项目中集成图表组件)
const radarOption = {
radar: {
indicator: radarData.map(i => ({ name: i.name, max: 100 }))
},
series: [{
type: 'radar',
data: [{
value: radarData.map(i => i.value),
name: '当前能力'
}]
}]
}
📦 Step5:阶段目标组件示例
@Entry
@Component
struct RadarReport {
@State radarData: { name: string, value: number }[] = []
@State goals: { name: string, goal: number }[] = []
async aboutToAppear() {
const wrongs = await loadWrongs()
this.radarData = generateKnowledgeRadar(wrongs)
this.goals = generateGoals(this.radarData)
}
build() {
Column({ space: 20 }) {
Text('知识点能力雷达图').fontSize(20).fontWeight(FontWeight.Bold)
// 图表区域,可替换为自定义雷达图或使用 ECharts
ForEach(this.radarData, d =>
Text(`${d.name}:${Math.round(d.value)} 分`).fontSize(14)
)
Text('阶段目标建议').fontSize(18).margin({ top: 10 })
ForEach(this.goals, g =>
Text(`📌 ${g.name}:目标 ≥ ${g.goal} 分`).fontSize(14)
)
}.padding(20)
}
}
✅ 拓展功能建议
| 功能方向 | 实现方式 |
|---|---|
| 图形打卡记录 | 每次练习打卡并记录 → 对应知识点记录练习时间/频次 |
| 历史对比雷达图 | 两次雷达图重叠(当前 vs 上次) |
| 自动学习日历排程 | 根据短板知识点安排未来7天任务 |
| 阶段总结报告导出 | 自动生成图文报告 + PDF 一键导出 |
⚠️ 注意事项(HarmonyOS 5+)
- 雷达图节点建议 ≤8 项,过多维度影响清晰度
- 练习数据与错题本建议打通,形成闭环(错题练习 + 提升记录)
- 图形组件建议加 loading / 防抖处理
- 打卡记录可配合时间戳绘制折线图或热力图视图
🧩 小结
你已构建完成鸿蒙平台下的学情雷达分析系统:
- 从错题统计知识点薄弱度
- 绘制雷达图展示各维度得分
- 系统生成阶段目标,指导个性化提升
- 可扩展打卡记录、阶段总结、智能任务排程
这将成为你的 AI 学习系统中的“驾驶舱仪表盘”,引导学生少走弯路,精准提升。
📘 下一篇预告
AI 出题引擎:根据知识点 + 难度 + 题型,自动生成题目 + 解析 + 批量导出 Word/PDF
更多推荐



所有评论(0)