适配 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

更多推荐