Skip to content
Back to skills

Scipilot Figure Skill

ASecurity

SciPilot Skills 家族成员,负责科研数据可视化——但定位不是"画图工具", 而是"可视化顾问"。先做数据剖析(列类型/样本量/分布/异常值/分组结构/相关性), 再结合用户的论证目标推荐图型,主动拦截科研画图的经典错误(小样本画均值柱掩盖 分布、双 Y 轴、饼图、Y 轴不当截断、rainbow 色图、把分类点连成折线等),最后 产出 Nature / Science / IEEE / Elsevier / PNAS / 中文核心期刊级别的成图。 覆盖纯数据图:折线、柱状、散点、箱线 / 小提琴、热力图、误差棒、分布图(直方 图 / KDE)、相关性矩阵 / 散点矩阵、多面板组合。技术栈 matplotlib + seaborn + SciencePlots(静态)+ plotly(交互)。中英文双语,中文模式自动配置 Noto Sans CJK / Source Han Sans / SimHei 并修复负号方框,支持中文期刊"宋体正文 + Times New Roman 数字"混排。默认色盲安全配色 + 冗余编码 + 灰度预览。出图后做 "视觉自检闭环":渲染 P...

  • 13 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentspythonbashnode

Security analysis

A100/100

Pro scans all 16 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add cjh-solver/MathModeling-Skills-Arsenal --skill scipilot-figure-skill --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Scipilot Figure Skill?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Scipilot Figure Skill
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/cjh-solver-scipilot-figure-skill/badge)](https://www.skillsdirectory.com/skills/cjh-solver-scipilot-figure-skill)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: scipilot-figure-skill
description: >-
 SciPilot Skills 家族成员,负责科研数据可视化——但定位不是"画图工具",
 而是"可视化顾问"。先做数据剖析(列类型/样本量/分布/异常值/分组结构/相关性),
 再结合用户的论证目标推荐图型,主动拦截科研画图的经典错误(小样本画均值柱掩盖
 分布、双 Y 轴、饼图、Y 轴不当截断、rainbow 色图、把分类点连成折线等),最后
 产出 Nature / Science / IEEE / Elsevier / PNAS / 中文核心期刊级别的成图。
 覆盖纯数据图:折线、柱状、散点、箱线 / 小提琴、热力图、误差棒、分布图(直方
 图 / KDE)、相关性矩阵 / 散点矩阵、多面板组合。技术栈 matplotlib + seaborn +
 SciencePlots(静态)+ plotly(交互)。中英文双语,中文模式自动配置 Noto Sans
 CJK / Source Han Sans / SimHei 并修复负号方框,支持中文期刊"宋体正文 +
 Times New Roman 数字"混排。默认色盲安全配色 + 冗余编码 + 灰度预览。出图后做
 "视觉自检闭环":渲染 PNG 预览→程序自检缺字/文字裁切/刻度重叠→AI 读图复核遮盖
 与子图对齐→回改重渲,直到通过。
 当用户的任务涉及以下任何情况时主动触发:论文配图、科研画图、数据可视化、
 不知道用什么图、怎么展示数据、用什么图好、期刊投稿图、figure、出版级图表、
 matplotlib、seaborn、plotly、误差棒、显著性标注、色盲安全配色、矢量图导出、
 中文论文图表、多面板。**即使用户只是给一批数据问"这个怎么画"或"用什么图
 好",也应使用本技能——本技能首要能力是"判断该用什么图",其次才是绘制。**
 不做示意图、流程图、架构图。
---

# scipilot-figure-skill — 科研数据可视化顾问

> SciPilot Skills 家族成员 | 从数据剖析到出版级成图

## Contest-Orchestrator Adapter

在 `contest-orchestrator` 及其轻量、DSH、MathorCup 模式中,本技能按两个阶段运行,只负责数据结果图,不负责技术路线图、流程图、模型结构、算法过程、机制图或几何图。数据图执行 SciPilot 决策卡 → ModelViz 生成 → SciPilot 检查;所有非数据图统一路由到 `tikz-scientific-figures`。输入来自项目工作区的 `result_registry`、`numeric_source_map`、图表计划、任务卡和已批准结果。

`active_mode: full-contest-mathorcup` 时,M2 的 EDA 图读取 `data_overview.yaml`、`eda_report.md`、原始数据和当前任务卡;若图中展示冻结特征或标签关系,还需读取 `features.yaml` 与 `leakage_audit.yaml`,且不得用测试折标签决定表示方式。M4 的正式数据图读取已批准 `visual_argument_plan.yaml`、M3 `run_manifest.yaml`、`result_interpretation_cards.yaml`、`independent_validation.yaml` 及对应数据/结果文件。缺少 Harness 命名的登记文件不等于缺少证据;每个图中数字、字段、单位和图注主张仍须绑定当前项目的真实来源与哈希。M4 仅负责已批准的数据图位,不另行决定全局图表计划。

### DISCOVERY phase

MathorCup 启用 `nodes.M4.visual_workflow: writer_first_batches` 时,M4 从当前任务卡读取由 writer 在批次初稿后提出、经用户确认的批次视觉计划与初稿引用,不以前置全篇正式图或全局计划为输入条件。writer 决定需要解释的读者问题与落位,本技能负责数据剖析、具体图型和视觉编码;最终 QA 与真实来源要求照常执行。全篇计划由 writer 汇总各批已批准槽位,图表 agent 不重新决定论文需要哪些图。其他模式的计划职责不变。

- 对批准的数据执行数据剖析,核对字段、样本量、数据类型、分组结构、连续性、异常值和缺失情况。
- 先从论文上下文提取 `reader_question`、`claim` 和 `reader_takeaway`,再选择 `representation_mode`:`figure`、`table` 或 `text`。只有选择 `figure` 后才确定具体图型、视觉编码和模板;如果表格或文字已经能完整传达证据,不为满足图数生成图。
- 创建完整 `decision card`:读者问题、论证主张、数据字段与结构、表示方式及理由、推荐图型、备选图型、排除图型、信息单元、坐标单位、图注限制、前置引导语职责、后置解释语职责和论文落位。
- 只输出决策卡和数据剖析证据,不检索模板、不执行绘图。

MathorCup 或 Harness 启用 `chapter_parallel` 时,以主控对应的 `mathorcup_chapter_parallel.md` 或 `harness_chapter_parallel.md` 为时序依据:接收已批准章节绑定的提示词与视觉计划,完成本轮图表决策和 QA。提示词返修产生新版本,不撤销未变章节批准,也不阻塞后续章节;最终资产仍须绑定最新请求、来源和选定版本。此分支优先于历史批次或图件先行的描述。

### QA phase

- 接收 ModelViz 生成的 SVG、PNG、模板适配脚本和执行报告,执行 `semantic check`、`technical check` 和 `visual check`。
- 视觉检查默认开启,用于确认图片美观、整洁、可读、层级清楚和标注完整;技术检查与视觉检查分开登记。
- 检查失败时只返回明确的定向修复项,由 ModelViz 修复后重新进入 QA phase;通过后绑定 `generator=modelviz`、`semantic_qa=scipilot-figure-skill`。
- 返回 `status`、`active_mode`、`task_card`、`artifacts`、`evidence`、`checks`、`blockers`、`next_node` 节点包。缺少来源或任一检查失败时阻断论文使用。
- 图表、图注、报告不得包含元话语、内部交流、调试、失败过程、旧版本或其他负回响;本技能不改变原始数据、模型结果或论文公式。

## 概述

科研工作者最大的画图痛点往往不是"不会用 matplotlib",而是"手上一堆数据,不知道该用什么图把结论讲清楚"。本技能的**首要能力是【思考与判断】**,其次才是【绘制】。

具体地——**永远先思考再画**:
1. 先理解数据再选图——拿到数据先做 EDA,用事实驱动图型选择
2. 先想清楚"这张图要论证什么"——同样数据,不同论点 = 不同图
3. 主动拦截科研画图的经典错误,而不是顺从
4. 维度太多就建议拆图,不硬塞

**只覆盖纯数据图**:折线、柱状、散点、箱线/小提琴、热力图、误差棒、分布图、相关性矩阵、多面板组合。**不做**示意图、流程图、架构图。

## 何时使用

- 用户给了一个 CSV / Excel / DataFrame 说"帮我画一下"或"用什么图好"
- 用户在写论文要插数据图
- 用户已有草图但说"达不到投稿要求"
- 用户提到 Nature / Science / IEEE 等具体期刊
- 用户问"中文论文 matplotlib 出方框怎么办"
- 用户提到误差棒、显著性、色盲、矢量导出、多面板

## 核心工作流(8 步)

**这是本技能与普通画图工具的根本区别——不能上来就画**。每一步缺位前一步的成果都不该执行。

### 第 0 步:理解任务

开画前**先搞清楚三件事**:

1. **读者在此处要理解什么,论文主张是什么?** 先写出一个可检验的 `reader_question` 和一个 `reader_takeaway`。同样数据,论点不同,表示方式也不同。
2. **不出图是否会损失理解?** 在 `figure`、`table` 和 `text` 中先选择最小充分表示,并写明理由;图表数量是结果,不是任务目标。
3. **数据在哪里?长什么样?** 文件路径 / 字段含义 / 多少行 / 是否已经清洗

**如果用户没说清论证目标**,主动问一句:"读者看完这一处需要理解什么?" 或从论文上下文推断并明确记录假设。**不要把用户给出的图型直接当作语义决策**;先检查它是否服务于读者问题。

### 第 1 步:剖析数据

调用 `scripts/profile_data.py`:

```bash
python scripts/profile_data.py data.csv --group group --group condition
```

输出包含:每列类型、样本量、缺失率、连续列的描述统计 + 偏度 + 异常值、分组样本量分布、相关性矩阵、初步图型建议。

不会读这份报告?查 `references/data_profiling.md`。

**重点核对**:
- 列类型识别对不对?(数字 ID 被认成 ordinal 是常见误判)
- 每组 n 是多少?小样本警告?
- 是否高度偏态?是否需要对数轴?

### 第 2 步:选图

**这是顾问职责的核心**。基于第 0、1 步的事实,查 `references/chart_selection.md` 的决策框架决定图型。要点:

- 先确定 `representation_mode`,再决定图型;`table` 和 `text` 是合法且优先的结果,不得把每个视觉义务机械转成图片。
- 每张图只承担一个核心读者问题,并列出至少两个相互独立的信息单元;单一信息单元只有在 `compact` 理由成立时才允许成图。
- **给出推荐 + 简短理由 + 1-2 个备选**(不要只丢一个选择给用户)
- 如果数据维度过多(如分组组合 > 12)→ **明确建议拆图**,而不是硬塞
- 如果用户指定的图型**不适合数据**(如 n=5 要画均值柱)→ **善意指出问题并说明更好的选择**,让用户决定。详见下方"主动拦截"小节
- 如果数据特征意味着特殊处理(双峰分布、严重异常值、跨量级)→ 在选图建议里明确提及

### 第 3 步:查期刊规范

确定目标期刊后查 `references/journal_specs.md` 拿到:单/双栏宽(mm 与 inch)、字号、推荐字体、DPI、矢量格式偏好。

不知道目标期刊就问一句。"毕业论文 / 中文核心 / 英文 SCI / NeurIPS" 都对应不同规范。

### 第 4 步:配环境

```python
from setup_style import setup_style
setup_style(journal='nature', lang='en')             # 英文 Nature
setup_style(journal='general', lang='zh', serif_for_zh=True)   # 中文宋体混排
```

`SciencePlots` 装了自动用,没装回退到内置预设——不会因为缺它崩溃。

### 第 5 步:绘制

按 `references/plot_recipes.md` 对应章节的配方画。每节都有可直接复制的 Python 代码 + 常见坑。

画图时强制做到:
- `figsize=(目标宽, 目标高)` 单位英寸——直接定最终尺寸
- 用 `seaborn.color_palette('colorblind')` 或 Okabe-Ito + 冗余编码(不同线型/marker)
- 误差棒 / 阴影要在图注交代是 SD / SEM / 95% CI + n
- 流程、机制、技术路线和几何关系不通过堆放公式或原始数据来“凑信息量”;竞赛模式下这些语义统一交给 `tikz-scientific-figures`,数据图只呈现其已登记的数值证据。

### 第 6 步:自检闭环(机器检查;视觉检查按适配层选择)

**三层都要过,缺一层都可能带病投稿**:

1. **语义层**:`references/viz_pitfalls.md` 18 条科研画图禁忌——图型/配色/误差是否踩坑
2. **形式层**:`references/publication_checklist.md` 形式合规(尺寸、DPI、字号、误差交代)
3. **视觉层(绘图任务默认开启)**:执行**渲染 PNG → 程序自检 → AI 读图复核 → 回改**:
   - `visual_qa.render_preview(fig, 'figs/_preview.png')` 渲一张预览
   - `visual_qa.audit_layout(fig)` 程序抓**缺字乱码 / 文字裁切 / 刻度重叠**(确定性问题)
   - **用 `Read` 工具读这张 PNG**,对照 `references/visual_review.md` 的 8 项清单核对
     **图例压数据 / 子图标签对齐 / 配色灰度可分**(程序难判的感知问题)
   - 发现问题 → 按 `visual_review.md` 回改表改 → 重渲 → 再读,直到通过

语义层、形式层和绘图任务默认开启的视觉层不通过都必须修复;只有调用方明确关闭视觉层时登记为未请求,不得伪造通过。视觉检查完成后再导出 SVG 和 PNG。

### 第 7 步:导出

```python
from export_figure import export_figure
export_figure(
    fig, basename='figs/fig1',
    formats=['svg', 'png'],
    size_inches=(3.5, 2.625),
    dpi=300,
    grayscale_preview=True,    # 自动出灰度版供色盲检查
)
```

最后跑一遍 `scripts/check_figure.py --strict` 机器审计。

### 图表节点交接契约

针对数据结果槽位,交给 `contest-orchestrator` 的决策卡和 `figure_registry` 必须保留 `representation_mode`、选择理由、`reader_question`、`reader_takeaway`、前置引导语职责和后置解释语职责。`figure` 才能进入 ModelViz 模板检索与生成;`table` 或 `text` 直接登记为非绘图表示并由论文 agent 落位。当前模式的图表 agent 负责汇总全局 `visual_argument_plan.yaml` 并分配流程图、技术路线图和示意图路由;本技能只处理其中的数据结果槽位。数据图生成前必须能回答“图中哪些信息单元共同支撑主张”,生成图后必须能回答“读者看图后新增了什么理解”。

## 选图速查(详细决策在 chart_selection.md)

| 数据形态 | 推荐首选 | **不该用** |
|---|---|---|
| 1 个连续 看分布 | 直方图 + KDE / 箱线 | 饼图 |
| 1 个分类 看占比 | 横向柱状(按值排序) | 饼图、3D 饼 |
| 1 分类 + 1 连续,n<10/组 | **stripplot / dot plot**(直接列点) | 均值柱(**严禁**) |
| 1 分类 + 1 连续,n≥10/组 | **箱线/小提琴 + stripplot 叠加** | 仅均值柱 |
| 2 连续 看关系 | 散点 + 回归 + r 值 | 折线(除非 x 有序连续) |
| 时间 / 剂量 vs 连续 | 折线 + 误差带 | 柱状 |
| 多变量相关(>3 列)| 相关性热力图 / pairplot | 平行坐标 |
| 矩阵数据 | 热力图(viridis/RdBu_r)| 3D 表面、rainbow 色图 |
| 构成占比 | 堆叠柱 / treemap | **饼图** |

完整决策树和"同一数据不同论点 → 不同图"对照表见 `chart_selection.md`。

## 五条硬性原则

### 原则 1:按最终尺寸出图,不二次缩放

`figsize` 直接设论文里实际尺寸(Nature 单栏 3.5 in、双栏 7.2 in;IEEE 单栏 3.5 in、双栏 7.16 in)。导出后**绝不在 Word / LaTeX 里再缩放**。

**为什么**:matplotlib 字号是绝对单位(pt),Word 里缩 50% 9pt 就变 4.5pt——投稿前自检直接打回。

### 原则 2:矢量优先

折线 / 柱状 / 散点 / 热力(数据网格除外)/ 误差棒统一导出 SVG 和 PNG。SVG 用于 LaTeX 正式插入,PNG 用于预览和视觉检查。**不生成图片 PDF,也不用 JPEG、TIFF 等其他图片格式**。

**为什么**:矢量任意缩放不糊,文字仍可选;JPEG 数据图边缘有压缩 artifact,期刊 PDF 检查器直接打回。

### 原则 3:配色对色盲友好

默认 `seaborn.color_palette('colorblind')` 或 Okabe-Ito。**同一张图不同类别加冗余编码**(线型 / marker)。出图前 `export_figure(..., grayscale_preview=True)` 看灰度版能否区分。

**为什么**:约 8% 男性、0.5% 女性色觉异常。审稿人里有这群人,全靠红绿区分的图对他们传达力归零。

### 原则 4:字号在最终尺寸下可读

正文标签和刻度数字 7-9 pt,最小字 **≥ 6 pt**。

**为什么**:审稿编辑会按 mm 打印查字号;<6 pt 不可读直接退回。

### 原则 5:误差必有交代

只要有误差棒 / 阴影区间 / 箱线——**图注必须写清**:
- 误差类型(SD / SEM / 95% CI / IQR)
- 样本量 n
- 显著性检验方法 + 校正(如 Bonferroni)
- 显著性符号定义(`* p<0.05` 等)

**为什么**:SD 和 SEM 差一个 √n。混淆 = 结论反转 = 退稿。

## 主动拦截(顾问职责)

发现用户的需求会触发以下错误时,**先说明再给替代方案,不要默默照做**。完整 15 条详见 `references/viz_pitfalls.md`。

| 错误 | 后果 | 替代方案 |
|---|---|---|
| n<10/组 还想画均值柱 | 掩盖分布、掩盖 n、审稿人怀疑 | 箱线 + stripplot;或直接 stripplot |
| 双 Y 轴显示无关变量 | 视觉上的相关 / 分歧是作图者捏造的 | 拆成上下子图共享 x;或标准化共轴 |
| 用饼图展示占比 | 人眼判角度差长度 3 倍 | 横向柱状(按值排序) |
| 3D 柱 / 3D 饼 | 视角扭曲所有数值 | 2D 柱、热力图 |
| 比例图 Y 轴不从 0 起 | 误导小差异看起来很大 | 从 0 起或用 log;或加明显断裂标记 |
| 颜色映射连续值无 colorbar | 读者不知道深浅对应数值 | 必加 colorbar + 标 label/单位 |
| x 是分类却用折线连均值 | 暗示不存在的连续关系 | 散点 / 点图 / 柱状 |
| 一图塞 5 个论点 | 没论点 | 拆图,一张图一个核心结论 |
| rainbow / jet 色图 | 感知不均匀、造假峰 | viridis / magma / RdBu_r |

**拦截话术示例**:

> 你要的"3 组各 5 个样本的均值柱状图"会触发 P1(均值柱掩盖分布):n=5 太小,柱状会让审稿人怀疑你藏了什么。我建议改成**箱线 + stripplot 叠加每个点**,5 个点直接可见、分布形态一目了然。要按原方案画吗?

尊重用户最终决定,但**留下明确的劝阻记录**。

## 中文支持

中文 matplotlib 出方框的根本原因:默认字体(DejaVu Sans 等)不含 CJK 字符表。`setup_style(lang='zh')` 自动做两件事:

1. 按优先级查中文字体:`Noto Sans CJK SC` > `Source Han Sans SC` > `SimHei` > `Microsoft YaHei`
2. 修负号方框:`plt.rcParams['axes.unicode_minus'] = False`

找不到任何 CJK 字体会抛清晰的安装提示(不会让你画完发现是方框)。

**中文期刊的"宋体 + 数字 Times New Roman"混排**:传 `serif_for_zh=True`,优先选 Noto Serif CJK / Source Han Serif / SimSun。

详见 `references/journal_specs.md` 末尾的字体安装小节。

## 脚本说明

| 脚本 | 干啥 | 主入口 |
|---|---|---|
| `profile_data.py` | EDA:列类型 / 样本量 / 分布 / 异常 / 相关 / 初步图型建议 | `profile_data(source, group_cols)` |
| `setup_style.py` | 期刊预设 + CJK 字体配置 + SciencePlots 包装 | `setup_style(journal, lang, use_sciplots, serif_for_zh)` |
| `export_figure.py` | SVG/PNG 导出 + 按最终尺寸 + 灰度预览 | `export_figure(fig, basename, formats, dpi, size_inches, grayscale_preview)` |
| `check_figure.py` | 文件合规自检(格式 / DPI / 字体嵌入) | `check_figure(path, min_dpi, target_inches)` |
| `layout_tools.py` | 子图标签对齐 + constrained/tight 兜底理版 | `add_panel_labels(fig, style)` / `finalize_figure(fig)` |
| `visual_qa.py` | 渲染 PNG 预览 + 程序自检(缺字 / 裁切 / 刻度重叠) | `render_preview(fig, out)` / `audit_layout(fig)` |

## 参考文档

`references/` 下七份文档——**按需 view,不要一次全读**:

| 文档 | 何时读 |
|---|---|
| `chart_selection.md` | **每次选图必读**——决策框架、不同论点→不同图 |
| `data_profiling.md` | 读不懂 `profile_data.py` 输出 |
| `viz_pitfalls.md` | 自检前必读——18 条避坑清单(含 P16-18 排版/渲染坑) |
| `journal_specs.md` | 不确定目标期刊的栏宽/字号/DPI/字体 |
| `plot_recipes.md` | 9 类图各自的完整配方 + 适用场景 |
| `publication_checklist.md` | 投稿前最后过形式合规清单 |
| `visual_review.md` | 出图后视觉自检——AI 读图 8 项清单 + 回改循环协议 |

每份开头都有目录——先查目录定位,再 view 对应小节。

## 常见任务示例

### 任务 A:用户只丢一个 CSV 说"帮我把这个画成论文图"

**思考-绘制工作流的范例**:

1. **第 0 步**:问用户"你这份数据主要想说服读者相信什么?"——是组间差异?时间趋势?变量关系?
2. **第 1 步**:跑 `python scripts/profile_data.py data.csv` 得到剖析报告
3. **第 2 步**:读报告里"列类型 + 样本量 + 分组结构",结合用户的论证目标查 `chart_selection.md` 决策。**主动给出推荐 + 理由 + 1-2 备选**
4. **拿到用户确认后**进入第 3-7 步:查期刊规范、配环境、画、自检、导出

不要跳过任何一步。

### 任务 B:用户说"我想用柱状图展示三组各 5 个样本的均值"

**主动拦截的范例**:

```
你要的"三组各 5 个样本均值柱状图"会触发科研画图的经典 P1 错误
(参见 viz_pitfalls.md)——n=5 太小,柱状图的高度 + 一根误差棒无法
告诉读者数据真实分布。审稿人看到很可能要求"show individual data points"。

我建议改成 **箱线图 + stripplot 叠加每个点**:5 个点直接可见,
不掩盖任何信息,反而更可信。代码也只多一行。

要按原方案画,还是改成箱线+stripplot?
```

如果用户坚持要柱状,那也照做——但**至少**强制叠加 stripplot 显示每个点。

### 任务 C:多面板组合图

用户:"给我画一个 Figure 1:4 个 panel,分别是 PCA、loss 曲线、混淆矩阵、生存曲线。"

流程:
1. 确认目标期刊(决定整张图 7.2 in 还是 7.16 in;Nature `a/b/c` vs IEEE `(a)(b)(c)`)
2. 各 panel 独立画,**保证字号、配色、坐标尺度统一**(同一变量在 4 个 panel 里同色)
3. 用 `plt.subplots(2, 2, figsize=(7.2, 5.4))` 组合(`setup_style` 已默认开 constrained_layout)
4. `layout_tools.finalize_figure(fig)` 理顺版面,再 `add_panel_labels(fig, style='nature')` 打 a/b/c/d——**统一 figure 坐标自动横竖对齐**,不要手摆 `ax.text`(易错位,见 viz_pitfalls P18;IEEE 用 `style='ieee'` → (a)(b)(c))
5. **视觉自检闭环(绘图任务默认开启)**:`render_preview` 渲 PNG → `audit_layout` 程序自检 → `Read` 读图核对子图对齐/遮盖 → 回改 → 通过后再导出 + 灰度检查;只有调用方明确关闭时才跳过并登记状态。

详细配方见 `plot_recipes.md` 第 9 节。

### 任务 D:带显著性标注的统计图

用户:"3 组数据,箱线图加显著性标注。"

流程:
1. profile 确认 n(n<10 → 必须叠 stripplot)
2. 跑统计检验(**用户必须告知**用了什么检验,是否多重比较校正)
3. 画箱线 + stripplot
4. 用 `matplotlib.lines.Line2D` 或 `statannotations` 在组之间画显著性桥
5. **图注必须写**:误差类型 / n / 检验方法 / 校正 / 符号含义

配方见 `plot_recipes.md` 第 4 节。

## 依赖

```
matplotlib>=3.7
seaborn>=0.13
plotly>=5.18
pandas>=2.0
numpy>=1.24
scipy>=1.10            # profile_data 的偏度计算用到
Pillow>=10.0           # check_figure / grayscale preview
SciencePlots>=2.1      # 可选;装了样式更接近期刊
kaleido>=0.2.1         # 可选;plotly 导出 SVG/PNG
```

可选依赖缺失时本技能仍能跑——会优雅降级并提示。

Files in this skill

  • SKILL.md22.2 KB
  • references/chart_selection.md11.3 KB
  • references/data_profiling.md8.4 KB
  • references/journal_specs.md7.5 KB
  • references/plot_recipes.md18.8 KB
  • references/publication_checklist.md5.7 KB
  • references/visual_review.md7.1 KB
  • references/viz_pitfalls.md15.5 KB
  • scripts/check_figure.py6.7 KB
  • scripts/export_figure.py5.7 KB
  • scripts/layout_tools.py9.1 KB
  • scripts/profile_data.py17.3 KB
  • scripts/setup_style.py11.3 KB
  • scripts/visual_qa.py12 KB
  • tests/test_export_figure.py800 B
  • tests/test_visual_qa_formats.py490 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.