# 第四章：数据分析与可视化实战

## 4.1 本章导读

做科研离不开数据。无论你是理工科做实验、社科做问卷、还是医学做临床统计，数据分析与可视化都是绕不开的环节。传统的做法是在 Excel、Python、R 之间反复切换，画一张论文级图表可能要调半天参数。

本章我们将探索如何用 OpenClaw Agent 辅助数据分析与可视化。重点是**思路和方法**——抛出问题，给出期望的步骤，展示使用案例，激发你根据自己的研究场景自由发挥。

## 4.2 数据分析的常见痛点

### 4.2.1 你可能遇到的问题

| 痛点 | 具体表现 | 期望的 Agent 帮助 |
|------|----------|-------------------|
| **工具切换** | Excel 看、Python 算、R 画图，来回折腾 | 一个对话窗口搞定全流程 |
| **选图困难** | 不知道该用折线图还是箱线图 | Agent 根据数据特征推荐合适的图表类型 |
| **调参耗时** | matplotlib 出图丑，调样式改半天 | Agent 直接生成论文级美观图表 |
| **统计方法** | 不知道用 t 检验还是 ANOVA | Agent 根据实验设计推荐合适的统计方法 |
| **重复劳动** | 每次换数据集都要重写一遍分析代码 | 做成 Skill，换数据一键复跑 |

### 4.2.2 Agent 辅助数据分析的定位

Agent 不是替你做研究，而是帮你**更快更好地完成数据处理工作**：

- 你提供数据和问题，Agent 帮你写代码、画图表、做统计
- 最终结论需要你来判断——Agent 不懂你的研究领域
- 所有基于真实数据，不涉及 AI 生成虚假数据

## 4.3 从一个例子开始

### 4.3.1 场景：分析实验数据

假设你做了一组实验，有两组数据（对照组和实验组），需要比较差异是否显著。你可以这样跟 Agent 对话：

```
👤 我有一个 CSV 文件 data/experiment_results.csv，包含 group（control/treatment）
   和 score 两列。帮我分析两组是否有显著差异，画一个箱线图。

🤖 好的，我先看看数据的基本情况...

   数据概览：
   - 总样本数：120（对照组 60，实验组 60）
   - 对照组均值：72.3（SD=8.1）
   - 实验组均值：78.6（SD=7.5）

   统计检验：
   - 先做了 Shapiro-Wilk 正态性检验 → 两组都近似正态
   - 因此使用独立样本 t 检验
   - t(118) = 4.37, p < 0.001

   结论：实验组显著高于对照组。

   箱线图已保存到 output/boxplot_experiment.png
```

### 4.3.2 这个过程中 Agent 做了什么

1. **读取数据** — 自动识别文件格式和列名
2. **探索性分析** — 样本量、均值、标准差
3. **选择统计方法** — 根据数据特征判断用参数还是非参数检验
4. **执行统计检验** — 正态性检验 → t 检验
5. **生成图表** — 论文级箱线图，带标注
6. **解读结果** — 用你听得懂的语言解释统计结果

### 4.3.3 思考：你能用它做什么

上面只是一个最简单的例子。同样的思路可以扩展到：

- 你的数据可能有 10 列而不是 2 列
- 你可能需要做相关性分析而不是差异检验
- 你可能需要做回归建模而不是描述统计
- 你可能需要生成一整套图表而不是一张

关键不在于 Agent 能做什么，而在于**你能不能把问题清晰地描述出来**。

## 4.4 图表类型选择指南

选对图表是做好可视化的第一步。以下是常见研究场景对应的推荐图表：

### 4.4.1 比较类

| 场景 | 推荐图表 | 你可以这样问 Agent |
|------|----------|-------------------|
| 两组数据差异 | 箱线图、小提琴图 | "画箱线图比较两组的差异" |
| 多组数据比较 | 柱状图（带误差线） | "用柱状图展示三组实验结果，加误差线" |
| 前后对比 | 配对散点图 | "画配对图展示治疗前后的变化" |

### 4.4.2 关系类

| 场景 | 推荐图表 | 你可以这样问 Agent |
|------|----------|-------------------|
| 两个变量关系 | 散点图（带回归线） | "画散点图看看 A 和 B 是否相关" |
| 多变量关系 | 热力图（相关矩阵） | "画相关系数热力图" |
| 随时间变化 | 折线图 | "画折线图展示过去 12 个月的变化趋势" |

### 4.4.3 分布类

| 场景 | 推荐图表 | 你可以这样问 Agent |
|------|----------|-------------------|
| 单变量分布 | 直方图、密度图 | "画直方图看看成绩分布是否正态" |
| 多组分布对比 | 堆叠密度图 | "画密度图对比两个班级的成绩分布" |
| 构成比例 | 饼图、堆叠柱状图 | "画饼图展示各类型占比" |

## 4.5 实战案例

以下三个案例覆盖了不同学科的数据分析场景。每个案例都展示了**如何描述问题**和**期望的输出**，你可以仿照这些模式在自己的研究中使用。

### 4.5.1 案例一：问卷调查数据（社科/商科）

**场景**：你发放了一份问卷，收集了 200 份有效问卷，需要分析不同人口统计特征下的态度差异。

```
👤 我有问卷数据 survey_data.csv，包含 age_group（年龄段）、gender（性别）、
   satisfaction（满意度 1-5 分）、willingness（使用意愿 1-5 分）。
   帮我做以下分析：
   1. 描述性统计
   2. 不同年龄段满意度的差异检验
   3. 满意度和使用意愿的相关性
   4. 生成一份分析报告

🤖 分析完成，以下是结果：

   1. 描述性统计：
      - 满意度：均值 3.72，标准差 0.89
      - 使用意愿：均值 3.45，标准差 1.02

   2. 年龄段差异（单因素 ANOVA）：
      - F(3, 196) = 5.23, p = 0.002
      - 事后检验：18-25 岁组显著高于其他组

   3. 相关性分析：
      - Pearson r = 0.67, p < 0.001
      - 满意度和使用意愿显著正相关

   4. 图表已生成：
      - output/satisfaction_by_age.png（分组柱状图）
      - output/correlation_scatter.png（散点图）
      - output/descriptive_summary.png（汇总表）
```

**你可以尝试的变体**：
- 加入信度分析（Cronbach's Alpha）
- 做因子分析降维
- 做回归分析预测使用意愿的影响因素
- 生成 LaTeX 格式的表格

### 4.5.2 案例二：实验测量数据（理工科）

**场景**：你做了一组材料性能实验，测量了不同温度下材料的硬度和弹性模量。

```
👤 我有实验数据 material_test.csv，包含 temperature（温度 ℃）、
   hardness（硬度 HV）、elastic_modulus（弹性模量 GPa）。
   每个温度点做了 5 次重复实验。

   帮我做：
   1. 硬度随温度的变化趋势（带误差带的折线图）
   2. 硬度和弹性模量的关系（双 Y 轴图）
   3. 找到硬度最高的温度点
   4. 输出论文用的三线表

🤖 分析结果：

   1. 趋势图已生成，可以看到硬度在 400-500℃ 区间达到峰值
   2. 双 Y 轴图显示硬度和弹性模量变化趋势基本一致
   3. 硬度最高点：450℃，均值 385.2 HV
   4. 三线表已生成 LaTeX 代码：

   \begin{table}[h]
   \centering
   \begin{tabular}{ccc}
   \toprule
   温度 (℃) & 硬度 (HV) & 弹性模量 (GPa) \\
   \midrule
   200 & 312.4 ± 5.2 & 198.3 ± 3.1 \\
   ...
   \bottomrule
   \end{tabular}
   \end{table}
```

**你可以尝试的变体**：
- 做 Arrhenius 拟合分析激活能
- 画 SEM/TEM 图片的标尺和标注
- 做 XRD 峰位标定
- 生成 Origin 风格的高质量图表

### 4.5.3 案例三：时间序列数据（经管/工科）

**场景**：你有某个指标的历史数据，需要分析趋势并做简单预测。

```
👤 我有月度数据 monthly_sales.csv，包含 date（日期）和 value（数值）。
   从 2020-01 到 2025-12。

   帮我做：
   1. 时间序列趋势图（带移动平均线）
   2. 季节性分析
   3. 预测未来 6 个月
   4. 标注异常值

🤖 分析完成：

   1. 趋势图已生成，叠加了 3 个月和 12 个月移动平均线
   2. 季节性分解（STL）显示每年 Q4 是高峰，Q1 是低谷
   3. 使用 Holt-Winters 方法预测未来 6 个月（已画在图上，灰色区域为 95% 置信区间）
   4. 检测到 3 个异常点：
      - 2022-03：显著低于趋势（可能受疫情影响）
      - 2023-11：显著高于趋势（双十一促销）
      - 2024-07：数据缺失导致插值异常

   图表已保存到 output/timeseries_analysis.png
```

**你可以尝试的变体**：
- 换用 ARIMA 或 Prophet 模型做预测
- 加入外部变量做多元时间序列分析
- 画仪表盘风格的汇总图
- 自动生成分析报告 Word 文档

## 4.6 把分析流程变成 Skill

### 4.6.1 为什么要做成 Skill

如果你每周都要做类似的数据分析（比如每周更新实验结果），重复描述需求很浪费。把它做成一个 Skill，下次只需要说"帮我更新本周实验分析"就行了。

### 4.6.2 如何做

参考第三章的自建 Skill 指南，核心步骤：

1. **把你的分析流程写清楚** — 先跟 Agent 走一遍完整的分析过程
2. **让 Agent 帮你总结成 Skill** — 说"把这个分析流程总结成一个 Skill"
3. **测试和迭代** — 换一份数据试试，看看 Skill 是否通用
4. **持续优化** — 使用过程中随时让 Agent 修改 Skill 的步骤

你不需要手写任何代码或 SKILL.md 文件——整个过程都可以通过对话完成。

### 4.6.3 举一反三

以下是你可以尝试创建的 Skill 方向，不需要代码，只需要把你和 Agent 的对话经验固化：

- **每周实验数据更新** — 自动读取新数据，更新图表和统计
- **论文图表生成器** — 输入数据，输出指定风格的论文级图表
- **统计方法推荐器** — 描述实验设计，Agent 推荐合适的统计方法
- **数据清洗助手** — 处理缺失值、异常值、格式转换
- **报告生成器** — 数据分析 + 图表 → 自动生成分析报告

## 4.7 注意事项

### 4.7.1 数据安全

- 实验数据留在本地（OpenClaw 自托管架构），不经过第三方服务器
- 敏感数据（如包含个人信息的问卷数据）建议在分析前脱敏
- 确认 `workspaceOnly=true` 已开启（详见第二章 2.9.3 节）

### 4.7.2 结果验证

- Agent 生成的统计结果需要人工核实
- 图表中的数值、坐标轴标注要仔细检查
- 统计方法的选择需要结合你的研究设计来判断——Agent 推荐的方法不一定完全适用
- 建议把 Agent 生成的代码保存下来，方便复查和复用

### 4.7.3 学术规范

- 数据分析辅助属于**工具使用**，不涉及学术诚信问题
- 但如果 Agent 参与了数据筛选或清洗决策，建议在方法部分说明使用了 AI 辅助工具
- 永远不要用 AI 生成或篡改实验数据

## 4.8 本章小结

本章我们以数据分析与可视化为场景，探索了 OpenClaw Agent 在科研中的实际应用：

| 内容 | 关键收获 |
|------|----------|
| **痛点分析** | Agent 可以解决工具切换、选图、调参等常见问题 |
| **图表选择指南** | 根据场景选择合适的图表类型 |
| **三个实战案例** | 问卷数据、实验数据、时间序列——覆盖多学科场景 |
| **固化成 Skill** | 把重复的分析流程变成可复用的 Skill |
| **多步协作** | 复杂分析可以拆分成多步骤让 Agent 依次执行 |

核心理念：**Agent 是你的数据分析助手，帮你处理技术细节，让你把精力集中在研究本身**。

## 4.9 课后思考

1. 你的研究中有哪些重复性的数据分析工作？试着描述给 Agent，看看它能不能帮你
2. 如果你的数据格式不规范（列名混乱、有中文有英文），你会怎么指导 Agent 处理？
3. 试着手动走一遍分析流程，然后让 Agent 帮你总结成 Skill。换一份数据测试一下效果
4. 你觉得还有哪些场景适合用 Agent 来辅助完成？动手实验下，并且作为打卡分享给大家。


