01 / FIGURES
科研可视化:从数据剖析到出版级成图
v1.2.0 新增的 tools/figure/ 子 skill,融合 nature-figure 的图表契约与 scipilot-figure-skill 的数据剖析、选图决策与自检闭环,覆盖从拿到数据到投稿级成图的完整链路,支持 Python 与 MATLAB 双后端。
第 1 步 · 数据剖析
profile_data.py 自动识别每列类型、样本量、缺失率、偏度、异常值、分组结构与相关性矩阵,并给出初步图型建议——先理解数据,再决定画什么。
第 2 步 · 图表契约
写代码前先填五点契约:核心结论、证据链、版型(quantitative grid 等)、后端(Python/MATLAB)、期刊导出规范。让每张图都有明确的论证目标,而不是随手一画。
第 3-4 步 · 选图决策与期刊规范
按数据形态与论证意图选图型:同一批数据不同论点对应不同图;再查目标期刊的栏宽、字号、DPI 与矢量偏好。
第 5-6 步 · 配环境与绘制
setup_style.py 提供 Nature / Science / IEEE / Elsevier 等期刊预设与 CJK 字体;按 plot_recipes.md 的配方绘制,强制最终尺寸、色盲友好配色与冗余编码。
第 7-8 步 · 自检闭环与导出
语义层 18+ 条避坑清单 → 形式层投稿合规清单 → 视觉层程序自检 + AI 读图 8 项清单,最多三轮回改;export_figure.py 同时输出 SVG + 300 DPI PNG + 灰度预览。
第 9 步 · 文件审计
check_figure.py 检查单张图格式合规(DPI/字体/尺寸/矢量);figure_audit.py 校验三类图数量与子问题覆盖,作为数学建模 P2 终检门禁。
数据剖析
列类型 / 样本量 / 缺失率 / 偏度 / 异常值 / 分组结构 / 相关性矩阵,输出建议图型。
图表契约
核心结论 → 证据链 → 版型 → 后端 → 期刊规范,五点契约写代码前强制填写。
选图决策
变量类型 × 论证意图 × 数据规模三维框架;全文图型 ≥ 3 种,反冗余。
自检闭环
18+ 避坑清单 + 投稿合规 + 程序自检 + AI 读图 8 项,最多三轮回改。
出版级样式
按最终尺寸出图、矢量优先、色盲友好配色 + 冗余编码、7-9pt 字号、误差必有交代(SD/SEM/95% CI + n)。
多格式导出
SVG + 300 DPI PNG + 灰度预览;9 个脚本覆盖剖析、样式、导出、自检、布局、审计全链路。
| 脚本 | 职责 |
|---|---|
profile_data.py | 数据剖析,输出列类型 / 样本量 / 偏度 / 建议图型 |
setup_style.py | 期刊预设 + CJK 字体 + SciencePlots 包装 |
export_figure.py | 多格式导出(PDF/SVG/PNG)+ 灰度预览 + fonttype 42 |
visual_qa.py | 程序自检:缺字 / 裁切 / 重叠 / 刻度重叠 |
check_figure.py | 文件级合规:DPI / 字体 / 尺寸 / 矢量格式 |
layout_tools.py | 子图标签对齐与版面兜底 |
validate_figure.py | 源码级审计:字体、色图、导出设置 |
style_constants.py | 色板 / 线宽 / 字体常量与工具函数 |
python "/tools/figure/scripts/profile_data.py" data.csv --group group python " /tools/figure/scripts/check_figure.py" " /figures" --strict
raw_/process_/result_,每类至少 3 幅、合计至少 9 幅,全部子问题覆盖,由 figure_audit.py --strict 在 P2 终检时拦截。02 / PAPER SEARCH
OpenAlex + AnySearch 双引擎论文检索
两个真实学术数据源并行检索、交叉核验,输出可追溯的论文元数据,避免单引擎偏差与冷启动不全。
分别检索
两个真实数据源独立执行查询;任一引擎失败时报告状态,不把单引擎结果标成交叉验证。
融合核验
DOI 精确匹配、题名与年份核验、专业词相关性重排,并折叠同题名的预印本与正式版本。
- 交叉匹配结果、OpenAlex 独有结果与 AnySearch 独有结果分开输出
- 按查询词覆盖率过滤重排,相关性优先于引用量,避免高被引但无关的论文挤占
- 多术语查询建议组合材料名、机理名与模型名(如 Sellmeier 4H-SiC Fabry-Perot)
- 结果过少时逐步放宽查询词,不直接接受无关结果
python tools/paper_search/scripts/hybrid_scholar.py --query "Sellmeier 4H-SiC Fabry-Perot" --limit 8 --json
03 / LATEX & PDF
在官方模板副本中构建可验证 PDF
从官方或内置模板创建、编译并校验 LaTeX 论文项目,支持 XeLaTeX、LuaLaTeX 与 pdfLaTeX,从环境诊断到最终 PDF 全程可验证。
环境诊断
doctor 在写作文前检查引擎、参考文献后端、Pandoc 与 PDF 审计工具是否可用,按官方模板选择配置。
真实编译
在隔离的官方模板副本中编译,阻断未解析引用、字体和版面预警,不静默忽略。
哈希绑定
latex_paper.py bind 用 SHA-256 把权威代码、数据、图表与 LaTeX 项目副本绑定,缺失、未绑定或漂移都阻断发布。
PDF 质量审计
检查正文与附录页数、空白页、字体嵌入、页面尺寸与图片 DPI。
python tools/latex/scripts/latex_paper.py doctor --engine xelatex --need-pandoc python tools/latex/scripts/latex_paper.py build "完整论文-LaTeX/main.tex" --publish "完整论文.pdf"
04 / DOCX
官方模板驱动的 Word 论文
默认论文交付路径:继承官方模板的页面、样式与分节,用代码稳定写入内容,公式转原生可编辑 OMML。
模板继承
保留官方模板的页面设置、样式、分节、页眉页脚与编号;模板含固定摘要页时原位填充,只借用样式时清除示例正文。
原生公式
常用 LaTeX 严格转换为可编辑 Word OMML 公式;完整 LaTeX 主稿可经 Pandoc 生成 DOCX 初稿。
三线表与修订
支持三线表生成、修订与批注,适配数学建模论文规范。
结构校验
完成 OOXML、图表引用、篇幅和渲染页数检查,发布前拦截模板占位符残留。
python tools/docx/scripts/paper_format.py inspect "当届官方模板.docx" python tools/docx/scripts/self_check.py
05 / XLSX
模板保留、公式重算与错误检查
读取、创建、修改和验证 XLSX,适合题目指定输出、需保留公式、多工作表或模板结构的场景;普通结果汇总优先 CSV。
- 读取附件时显式声明是否有表头,并断言首行、末行和预期行数
- 无表头数据使用
header=None或内置精确读取工具,不再让默认表头吞掉首行 recalc.py对公式重新计算并检查单元格错误- 输入只读,输出写入
PROJECT_ROOT,不覆盖题目原始附件
rows = read_excel_rows(
"data/input.xlsx",
header=False,
expected_rows=7470,
)06 / PDF
读取题目 PDF,提取文本、表格与图片
处理题目与附件 PDF,把内容交给建模手和编程手使用,支持从读取到表单处理的完整操作。
内容提取
读取文本、表格与图片,保留结构信息供建模分析使用。
页面操作
合并、拆分、旋转页面,添加水印。
表单处理
检查可填写字段、提取表单结构、按坐标填充 PDF 表单。
安全与 OCR
加密 / 解密 PDF,扫描件经 OCR 转为可检索文本。
所有工具都从 SKILL_ROOT 读取,只把产物写入 PROJECT_ROOT。
07 / REPRODUCIBILITY
一次任务,一条唯一复现命令
编程手交付 results/复现清单.json,把一次完整的建模运行固化为可复现的证据链。
输入证据
记录输入文件 SHA-256、随机种子和关键参数。
运行环境
记录 Python/MATLAB 版本、依赖包或工具箱,以及可直接执行的命令。
- 复现清单与代码、数据、结果、论文建立哈希绑定
- 任一步骤缺失或哈希漂移都会阻断完成判定