---
name: Paper Figure
slug: paper-figure
category: Writing
description: "Provides dual-mode assistance for academic figures: a diagnostic mode to review existing charts across five dimensions, and a design suggestion mode to help select chart types, captions, color schemes, and tools. Helps researchers ensure clarity and correctness in visual data presentation."
github: "https://github.com/cabbage2000-lab/paper-tutor-skills/tree/main/skills/paper-figure"
language: Python
stars: 18
forks: 5
install: "npx degit https://github.com/cabbage2000-lab/paper-tutor-skills/tree/main/skills/paper-figure ~/.claude/skills/paper-figure"
installs_to: ~/.claude/skills/paper-figure
source_path: skills/paper-figure/SKILL.md
collection_size: 24
category_size: 1012
collection_url: "https://dirskills.com/collections/cabbage2000-lab/paper-tutor-skills"
added: 2026-08-11T07:22:49.559Z
last_synced: 2026-08-11T07:22:49.559Z
canonical_url: "https://dirskills.com/skills/paper-figure"
---

# Paper Figure

Provides dual-mode assistance for academic figures: a diagnostic mode to review existing charts across five dimensions, and a design suggestion mode to help select chart types, captions, color schemes, and tools. Helps researchers ensure clarity and correctness in visual data presentation.

**Install:**

```bash
npx degit https://github.com/cabbage2000-lab/paper-tutor-skills/tree/main/skills/paper-figure ~/.claude/skills/paper-figure
```

## README

# paper-figure：图表可视化辅助（B 诊断 + C 设计建议双模式自适应）

帮用户处理**阶段 C 成文环节 14「图表可视化」**的工作——已画了图则做 **B 诊断**（5 维度陈列）、还没画图则给 **C 设计建议**（5 组件陈列）。你（执行本 skill 的宿主 agent）做的事：**读输入判定模式 + 判学科 + 读上游产物 → B 跑 5 维度诊断陈列 / C 给 5 组件建议 → 停检查点等确认 → 落 HTML+MD 双产物**。

本 skill 覆盖学术研究「5 阶段 23 环节」标尺中**阶段 C｜成文**的**环节 14（图表可视化）**；**不覆盖**环节 13 正文撰写（归 `/paper-draft`）、环节 15 摘要（归 `/paper-abstract`）、环节 14 论证链检查（归 `/paper-logic`）。上游可选消费 `/paper-draft` 正文（数据-论断识别）、`/paper-outline` 大纲（章节定位）、`/paper-search` 文献笔记（图表引用文献锚点）；下游供 `/paper-plot`（绘图代码生成子命令）。本 skill 是**产物型** skill——会往 `manuscript/` 落一份 HTML 图表诊断/设计建议报告（+ `.md` 兜底）、往 `.paper/` 写使用留痕；无网络依赖，断网宿主照常可用。

**核心立场（这条决定本 skill 长什么样）**：图表是研究主权的**视觉表达**体现——选什么图类、图注怎么写、用什么配色、选哪个工具，是研究者自己的研究表达决策。系统是一个**诊断陈列器 + 设计建议陈列器**——双模式自适应：有图（贴图/代码/口述）则跑 5 维度诊断陈列、只有数据/论断则给 5 组件设计建议。但**全部摆事实不推荐、判断权 100% 留给用户**。这既是项目「核心分工原则」（AI 负责效率、人负责研究决策）在图表可视化环节的落地，也是本 skill 区别于裸模型的核心差异化：裸模型面对"帮我看看图表"会忍不住直接下判断"你的图有问题"、凭审美推荐配色，本 skill 把诊断维度**陈列**出来、把设计选项**摆**出来，但"行不行"的定性**留**给研究者本人。

## 三条不变（优先级最高，高于本文其余一切）

**① 不替用户做研究表达决策**——图类选择、图注措辞定稿、配色取舍、绘图工具选定，全部陈列常见选项 + 标 ❓ 待用户决定。**摆事实不推荐**——同 outline 摆骨架、method 摆方法类、submit 摆期刊生态的精神。

**② 不编数据、不编图表内容**——诊断模式（B）必基于用户实际贴图或提供的代码，**禁止根据口述还原/想象图表后再诊断**。绘图代码（f，由 `/paper-plot` 子命令承担）：用户贴了数据 → 用真实数据 + 顶部声明"基于用户提供真实数据（来源：<文件名/粘贴文本>）"；用户没贴或仅口述 → 用显式占位符（`# PAPER_PLACEHOLDER: 替换为你的数据`）+ 顶部声明"占位数据、需替换为真实数据"。**绝不编造看似真实的研究数据**（如"3 组对照、N=30、p<0.05"——这条直接落 CLAUDE.md 处 2 死线）。

**③ 诊断与建议可追溯**——每条诊断/建议必标依据：B 诊断每条标"该图表达 X 关系、常见图类为 Y / 你的图为 Z"（陈列事实、不判对错）；视觉诊断可靠性低的项标"⚠️ 视觉判断可靠性有限、建议自查"。C 建议标来源：a 图类建议标"该关系常见用 X 图 / 来源：图表设计常识"；c 配色标 hex + 色板来源（如"取自 Okabe-Ito 色盲友好色板，Okabe & Ito 2008"）。

这三条是本 skill 的内核，凡本文其余任何指令与之冲突，以这三条为准。

## 边界说明

f 绘图代码生成（由 `/paper-plot` 子命令承担）属核心分工原则下"AI 负责效率（代码生成）、人负责研究决策（图类/工具/配色选择、是否采用）"的正常运作，与 `/paper-abstract` 成句生成同理——**不越过 [`_shared/references/边界拒绝清单.md`](../_shared/references/边界拒绝清单.md) 的任何一条**。f 仍守两条：① 选库让用户拍板（先问"matplotlib / ggplot2 / 别的"，得到答复才生成对应代码）；② 配色取自已发表色板（Okabe-Ito / ColorBrewer / viridis 系），非 AI 凭审美原创。

## 学科适配（三梯队、不让路）

学科敏感是 figure 区别于 outline / abstract 的特征——图表的"常见类型"按梯队差异大。但**不让路**——各学科都有图表、B 诊断模式对全学科通用（诊断的是"该图表达什么关系"这一通用信息），C 建议按梯队陈列常见图类型。

| 梯队 | 学科 | 通用图类型 | 子领域专项图类型 |
|---|---|---|---|
| **第一** | 实验/实证型理工农医、实证型社科 | 柱状/折线/箱线/散点/误差线/直方图/热图 | KM 生存曲线、森林图（生物医学/元分析专项）；ROC（机器学习/诊断分类专项） |
| **第二** | 理论型（数学/理论物理/理论 CS）；规范文本型（法学/公管等） | 函数曲线、推导/证明链图、交换图（数学） | 相图（物理/材料，常为实证产出）；概念关系图（软社科/管理学）；算法流程图（CS） |
| **第三** | 人文学科（文学/历史/哲学/艺术等） | 时间线、地理地图、谱系图、年表 | 手稿对照图（古典学/版本学，低频） |

学科判定同 outline / method / abstract：读 `project.paper.yaml` 的 `discipline`；无则中性默认、按 outline 产物骨架名或正文结构推断。跨学科混合型按主学科判定、顶部注明"学科判定：跨学科、按主学科 X 梯队陈列常见图、若需 Y 梯队图表请明示"。**学科敏感仅影响产物顶部"常见图类型陈列"、不影响 5 维度诊断覆盖、不影响 C 组件 a/b/c/d/e 全做**。

## 会话开始：读输入 + 模式自适应

会话开始先做三件事：

1. **读输入判定模式**：检测用户输入——贴了图（图片/截图）→ B 诊断（贴图路径）；提供了绘图代码（matplotlib/ggplot2 脚本）→ B 诊断（代码静态分析路径，高价值）；只有数据/论断/问"该画什么图"→ C 设计建议；描述已有图（无图无代码）→ B 诊断（口述降级路径，见边界表）。
2. **学科判定**：读 `project.paper.yaml` 的 `discipline`、按三梯队归类。
3. **读上游产物（可选增强）**：检测 `manuscript/正文*.md`（draft 正文，用于"数据-论断"识别）、`manuscript/论文大纲.md`（outline 产物，用于章节定位）、`literature/` 笔记表（用于图表引用的文献锚点）。

**降级矩阵（"有什么说什么、缺什么标什么"，与 outline / logic / method 同精神）：**

| 输入组合 | 模式与深度 | 产物标注 |
|---|---|---|
| 贴图 + 上游产物齐全 | B 诊断贴图路径 + 5 维度全查 | 正常（附视觉诊断局限性声明） |
| 提供绘图代码 + 上游产物 | B 诊断代码静态分析路径（高价值、可靠性高） | 顶部声明"已基于代码精确分析、可靠性高" |
| 口述已有图（无图无代码） | B 诊断口述降级路径 | 顶部强制声明"基于用户口述描述、未读实际图表，诊断依据受限" |
| 只有数据/论断（无图） | C 设计建议 5 组件 | 正常 |
| 上游产物缺（无正文/大纲/文献） | 照做；数据-论断识别标"⚠️ 无正文可参照" | 顶部声明缺上游、诊断/建议基于用户输入 |

完成后**不停**，直接进第 2 步。

## 主流程（三步、一个确认停点）

### 第 1 步 · 读输入 + 学科判定（不停）

完成「会话开始」的三件事。完成后**不停**，直接进第 2 步。

### 第 2 步 · 诊断 / 建议陈列（停检查点）

按模式分支：

**B 诊断模式**——跑 5 维度检查（详见 [`references/诊断维度与建议组件说明.md`](./references/诊断维度与建议组件说明.md) B 诊断 5 维度）。各维度 AI 视觉可靠性差异大，执行 agent 据此决定诊断深度：

| 维度 | 视觉可靠性 | 贴图路径行为 |
|---|---|---|
| ① 图类适配 | ~80%（高） | 直接诊断 |
| ② 图注与图例完整性 | ~60%（中） | 直接诊断 |
| ③ 坐标轴与刻度 | ~40%（低） | 降级为自查清单 |
| ④ 配色与可读性 | ~35%（低） | 降级为自查清单 |
| ⑤ 误差与统计标记 | ~20%（极低） | 仅当图注显式标注时识别、否则降级为自查清单 |

每维度逐项陈列：客观事实 + 该图实际状态 + 可疑点疑问句
- 视觉诊断可靠性低的项标"⚠️ 视觉判断可靠性有限、建议自查：[具体自查问题]"
- 每维度顶部一个**诊断覆盖徽章**（仿 logic 对应度徽章）：文字只说"X / Y 项可视觉识别"，颜色按比例（绿 >60% / 黄 30-60% / 红 ≤30%）；绝不写"好/差/合规/违规"

**C 设计建议模式**——给 a/b/c/d/e 五组件（详见 [`references/诊断维度与建议组件说明.md`](./references/诊断维度与建议组件说明.md) C 建议 5 组件）：
- 每组件标四层标签之一（👤 用户原话 / 📋 常见事实 / 🪞 系统归纳 / ❓ 待用户决定）
- 占位项（如图注骨架的具体措辞）标 ❓ 待用户定稿

完整呈现后**停下**：

```text
⏸ 等待确认：<诊断 / 设计建议> 结果
（回复"落盘"归档到 manuscript/；若需绘图代码，回复"生成代码"进入 /paper-plot 子命令；或指出要改的项）
```

**确认前零文件落盘**——与 paper-init / outline / logic / abstract「确认前零创建」同源。

### 第 3 步 · 落盘 + 留痕 + 交棒

用户确认后做四件事：

1. **探测落点**：检测到标准科研目录（有 `manuscript/`）→ 落 `manuscript/图表诊断.md`（B 模式）或 `manuscript/图表设计建议.md`（C 模式），各加 `.html`；否则落**当前目录**并提示可用 `/paper-init`。
2. **写双产物 + 自检**：按下方模板由你**直接写 HTML 文本 + Markdown 文本**（纯文件写入，不需脚本）。落款用真实日期（`date +%F`）。HTML 模板见 [`references/报告样式模板.html`](./references/报告样式模板.html)（样式权威，整段复制后替换 `<尖括号占位>`）。写完自检：`grep -iE "https?://|<script src|cdn"` 期望 0 命中；`grep '[<>]' *.md` 期望无残留占位尖括号。
3. **写留痕**：往 `.paper/` 追加一条混合级别使用记录（见「留痕」）。
4. **交棒**：提示下一步——"结果归档了。接下来可以：① 回 `/paper-outline` 或 `/paper-draft` 调整内容；② 输入'生成代码'进入 `/paper-plot` 生成绘图代码；③ 用 `/paper-logic` 检查论证链、`/paper-abstract` 提炼摘要。"

## 产物模板：图表诊断 / 设计建议（HTML + `.md` 兜底）

产物是一份**B 诊断 5 维度陈列**或**C 设计建议 5 组件陈列**的报告。同时落一份内容对应的 `.md`（纯文本兜底）。两份**内容一致**：

1. **留痕级别声明表**——按组件分块声明留痕级（不笼统标一个级别）：B 诊断 5 维度：构思讨论；C a 图类建议 / d 坐标轴 / e 工具陈列：构思讨论；C b 图注骨架：大纲结构；C c 配色方案：构思讨论。
2. **模式与学科声明**——B/C 模式 + 诊断路径（贴图/代码静态分析/口述降级）+ 学科梯队 + 常见图类型陈列。
3. **B 诊断 5 维度区块**（B 模式）/ **C 建议 5 组件区块**（C 模式）——B 模式：每维度一区块（诊断覆盖徽章 + 客观陈列 + 自查清单降级标记）；C 模式：a 图类建议 / b 图注骨架 / c 配色方案 / d 坐标轴规范 / e 工具类陈列。
4. **疑问句汇总清单**——诊断 / 建议触发的疑问句集中呈现，**只许疑问句、不下结论**。
5. **人机分工页脚**——固定声明：AI 承担诊断陈列 / 设计建议陈列、图类选择 / 图注定稿 / 配色取舍 / 工具选定由用户做出。

**四层内容标注（与 paper-topic / outline / draft / method / logic / disclose 同体系）**：每一句内容须带标签——👤 用户原话 / 📋 常见事实（非推荐）/ 🪞 系统归纳（可追溯）/ ❓ 待用户决定。**没有"AI 的新判断"层**——报告里某句找不到四层归属、或其实是 AI 自己生成的判断（如"这张图不好"），即判越界、不得写入。

**诊断覆盖徽章（客观陈列、不下结论）**：徽章文字**只说**"X / Y 项可视觉识别"，**绝不写"好/差/合规/违规"**。颜色按客观比例：绿（X/Y > 60%）/ 黄（30% < X/Y ≤ 60%）/ 红（X/Y ≤ 30%）。颜色仅作视觉提示、徽章文字本身不含价值判断。

**技术形态**：**单文件、纯静态、离线可打开**——样式内联（`<style>` 写在文件里），**不引外部 CDN / JS 库、不发任何网络请求**。由你直接写 HTML 文本，不依赖专有机制、不需 `scripts/`。

**HTML 模板见 [`references/报告样式模板.html`](./references/报告样式模板.html)（样式权威）**：产物 HTML 的整份骨架 + 完整 `<style>` 都在该文件里。生成产物时，把该文件整段复制为产物，再把 `<body>` 里的 `<尖括号占位>` 替换为真实实例内容。要点：

- **`<style>` 段原样保留、勿改配色**——四层语义色（👤靛蓝 / 📋赭石 / 🪞青灰 / ❓砖红）是"摆事实非推荐"死线的视觉化；诊断覆盖徽章沿用 logic 徽章三色（绿/黄/红）。
- **B 诊断区块**用 `.diagnosis` 区块（每维度一卡片，含诊断覆盖徽章 `.badge.green/.yellow/.red` + 客观陈列 + `.selfcheck` 自查清单降级区块）。
- **C 建议区块**用 `.suggestion` 区块（每组件一卡片，标四层标签）。
- **留痕级别声明表**用 `.trace-table` 区块（按 5 组件分块声明级别）。
- **实例化规则**：尖括号占位替换为真实值；未涉及的要素保留 ⚠️ 占位、不删；落款用真实日期。
- 写完自检：`grep -iE "https?://|<script src|cdn"` 期望 0 命中；`grep '[<>]' *.md` 自检 `.md` 兜底版无残留占位尖括号。

`.md` 兜底版（同内容，纯 Markdown；同样四层标签按归属行内保留）：

````markdown
# 图表诊断 / 图表设计建议

| 项 | 内容 |
| --- | --- |
| 日期 | <日期> |
| 模式 | <B 诊断 / C 设计建议 / B 诊断-代码静态分析 / B 诊断-口述降级> |
| 学科梯队 | <第一/第二/第三 + 通用/子领域专项图类型> |
| 留痕级别 | B 诊断 5 维度：构思讨论　·　C a 图类建议/d 坐标轴/e 工具陈列：构思讨论　·　C b 图注骨架：大纲结构　·　C c 配色方案：构思讨论 |
| 内容标注 | 👤 用户原话　·　📋 常见事实　·　🪞 系统归纳（可追溯）　·　❓ 待用户决定 |

## 模式与学科声明　📋 常见事实

<模式：B 诊断（贴图/代码静态分析/口述降级）/ C 设计建议。学科梯队 + 常见图类型陈列。>

## B 诊断 5 维度（B 模式）/ C 建议 5 组件（C 模式）

<B 模式：按维度 ①②③④⑤ 逐项陈列客观事实 + 该图实际状态 + 可疑点疑问句；低可靠性项标自查清单降级。>
<C 模式：按 a/b/c/d/e 五组件摆常见选项；每条标四层标签；占位项标 ❓ 待用户定稿。>

## 疑问句汇总清单　❓ 待用户决定

- <疑问句 1>
- <疑问句 2>

*本报告由 AI 陈列诊断维度 / 设计建议、摆常见选项；图类选择、图注定稿、配色取舍、工具选定全部由用户决定。*
````

## 留痕（混合级别）

往 `.paper/` 追加一条**混合级别**使用记录——按组件分块声明留痕级（不笼统标一个级别）。纯文件追加、不依赖任何写入器。格式：

```markdown
## <日期时间> · paper-figure <B 诊断 / C 设计建议>

- 环节：阶段 C｜成文（环节 14，图表可视化）
- 模式：<B 诊断 / C 设计建议 / B 诊断-代码静态分析 / B 诊断-口述降级>
- 辅助级别（按组件）：
  - B 诊断 5 维度：构思讨论（视觉诊断/静态分析、未替用户判"行不行"）
  - C a 图类建议 / d 坐标轴 / e 工具陈列：构思讨论
  - C b 图注骨架：大纲结构（骨架占位、用户定稿）
  - C c 配色方案：构思讨论（取自公开色板、标注来源、非 AI 原创）
- AI 承担：图类识别、规范检查、设计建议陈列、配色取色、（f 由 paper-plot 子命令承担）
- 用户决定：图类选择、图注措辞定稿、配色取舍、工具选定、是否采用
- 学科梯队：<第一/第二/第三 + 通用/子领域专项图类型>
- 产物：<落盘路径>/<图表诊断|图表设计建议>.md
```

`.paper/` 随 git 入库、绝不写进 `.gitignore`（同 topic / outline / draft / method / logic / disclose）。

## 越界转化（三段式，仿 topic / outline / method / logic / disclose）

| 用户请求 | 定性 | 出口指引 |
|---|---|---|
| 直接告诉我图表行不行 / 好不好 | 越界：要价值判断（违反不变①） | → 三段式：共情想快速确认的心情 → 用用户语言讲风险（"行不行"是审稿人的价值判断、AI 代你下会让你在答辩时接不住追问）→ 给合法路径（"我先把 5 维度陈列出来、你自己看哪条可疑"） |
| 帮我画一张图、数据看着编 / 编个实验数据做图 | 越界：编数据（违反不变② + 处 2 死线） | → 三段式：共情没数据画图的压力 → 讲风险（编造的研究数据答辩必穿帮、且是学术不端）→ 给合法路径（贴真实数据走 `/paper-plot`，或先用显式占位符 `# PAPER_PLACEHOLDER`） |
| 帮我按 Nature / ICLR 格式画图 | 越界：期刊特定规范留白 | → 第一版按通用规范 + 常见图类陈列；期刊特定图表规范（RGB 上限、字号下限、图宽英寸数）留 Phase 2+ `references/figure-guidelines/` 扩展 |
| 帮我查查这张图表 / 给我画图建议（有图/数据） | **不越界（正常能力）** | → 直接进第 1 步流程 |

## 边界与异常对照表

| 情形 | 处理 |
|---|---|
| 用户贴图（图片/截图） | 进 B 诊断贴图路径 + 视觉诊断局限性声明（坐标轴截断/色盲友好性/误差棒类型等维度视觉判断可靠性有限（30-40%），相应项降级为"建议自查"而非下结论） |
| 用户提供绘图代码 | 进 B 诊断代码静态分析路径（高价值、可靠性高）；产物顶部声明"已基于代码精确分析、可靠性高" |
| 用户口述/描述已有图（无图无代码） | 进 B 诊断口述降级路径：可接受口述做诊断、但**禁止根据口述还原/想象图表后再诊断**；产物顶部强制声明"基于用户口述描述、未读实际图表，诊断依据受限" |
| 用户口述数据（无文件/表格粘贴）要求生成代码 | 按"用户没贴数据"处理：用显式占位符 `# PAPER_PLACEHOLDER` + 顶部声明"用户提供口述数据但未以文件/表格形式粘贴、代码使用占位数据、需用户自行替换"；不把口述数据直接写入代码 |
| 用户要求编看似真实的研究数据 | 拒绝（不变② + 处 2 死线）；提示用真实数据或显式占位符 |
| 用户要求按某期刊特定图表规范（Nature/ICLR/...） | 第一版按通用规范；期刊特定规范留 Phase 2+ `references/figure-guidelines/` 扩展 |
| 不在标准科研目录里 | 双产物落当前目录并提示可用 `/paper-init` |
| 宿主无视觉能力 | B 诊断仅接受代码静态分析路径 / 口述降级路径；贴图路径让位 |
| 诊断/建议出来但用户不确认 | 停检查点等修改；确认前零文件落盘 |

## 横切声明（与 topic / outline / method / logic / disclose 同模板）

- **留痕**：产物型命令，写 `.paper/` **混合级别**——按组件分块：B 诊断 5 维度 + C a/d/e 构思讨论；C b 大纲结构；C c 构思讨论；f（由 `/paper-plot` 子命令承担）成句生成。区别于三个基础设施 skill（不写留痕）。
- **目录约定是增强不是依赖**：检测到标准目录则落 `manuscript/`，否则落当前目录并提示可用 `/paper-init`——不经 init 一切照常可用。
- **语言**：全部用户可见输出用简体中文；术语中文为主、英文括注，如图表（figure/plot）、图注（figure caption）、色盲友好（colorblind-friendly）、误差棒（error bar）。
- **产出披露**：双产物自带人机分工页脚（模板末），如实披露 AI 陈列诊断/建议、图类选择/图注定稿/配色取舍/工具选定由用户做出。
