| name | origin-figure-skill |
| description | Origin 出版级科研绘图。自然语言、Origin 模板或参考图片收敛到 StyleSpec v2,支持灰度/彩图、误差棒、多面板、可编辑 OPJU、矢量/高分辨率导出和视觉 QA 闭环。 |
| version | 2.0.0 |
Origin Figure Skill
出版级 Origin 图表制作:可复用模板、灰度/色盲友好彩图、OPJU 工程、论文格式导出和双语 caption。
路由(三入口 → StyleSpec)
根据用户意图选择入口,所有入口最终产出一份 StyleSpec JSON(schema 见 schema/style-spec.md)。
入口 ① 模板选择
触发词:套模板、用预设、my-journal、line/scatter/column/line-2y。
- 读
templates/INDEX.md 和模板组 metadata.json,按图型、颜色模式、列数/图层数和标签匹配。
- 用户选定后,读对应
.spec.json 作为 StyleSpec 基础;模板只保存图形结构与样式,不替代数据映射。
- 按用户补充需求覆盖个别字段(三层优先级:单图覆盖 > 期刊预设 > 硬默认)。
- 进入执行。
入口 ② 自然语言描述
触发词:画一张……图、帮我出图、做个折线图/散点图/柱状图。
- 按
schema/style-spec.md 字段表,把用户描述翻译为 StyleSpec v2 JSON。
- 缺省字段填安全默认值。颜色未说明时用灰度;明确要求彩图时用色盲友好 palette,并保留线型/符号区分。
- 进入执行。
入口 ③ 参考图风格提取
触发词:照着这张图画、复刻这个风格、提取参考图。
- 用视觉能力查看用户提供的参考图;只提取风格,除非用户另行要求,不从图片臆测数据。
- 按
references/style-extraction.md 生成符合 schema/reference-profile.schema.json 的观察档案;每项记录 value / confidence / evidence。
- 把高置信度观察映射到 StyleSpec;低置信度字段列入
uncertain_fields,不得伪装成确定值。
- 匹配
templates/ 中最近似模板作为起点,进入预校验和复刻循环。
执行(双轨)
检测
调用 origin_status(MCP)或在 skill 根目录运行 uv run python scripts/_common.py(脚本)确认 Origin COM 连接。
轨道 A — MCP 工具(优先)
条件:origin-figure-mcp 已连接(origin_status 返回正常)。
典型调用链:
validate_style_spec → import_data → create_graph(preset/template)
→ add_plot × N → apply_style_spec → [add_error_bars]
→ inspect_graph → view_graph / export_graph(PNG) → 视觉与自动 QA
→ save_project(.opju) → export_graph(PDF/EMF/TIFF 等)
→ release_origin(隔离测试/批处理会话)
多面板:先分别完成并检查各子图,再用 compose_graphs 合并。微调优先 set_axis 或 StyleSpec;run_labtalk 只作已知安全命令的最后手段。
双 Y 图先用 create_graph(figure_type="double_y"),左轴曲线使用 add_plot(..., layer_index=0),右轴曲线使用 add_plot(..., layer_index=1);随后传入 axes.y2 的 StyleSpec。
轨道 B — 独立脚本(降级)
条件:MCP 未连接或用户指定脚本模式。
cd origin-figure-skill
uv sync
uv run python scripts/plot_from_spec.py --data 数据.csv --spec spec.json --out 成图.opju [--x 0 --y 1 2 3]
uv run python scripts/export_preview.py --graph SpecGraph --out preview.png
pyproject.toml 已声明 originpro、pywin32 与 Pillow。预览脚本导出当前 Origin 会话中的图,audit_preview.py 对预览做客观预检;--graph 接受图短名或工作流长名。
产图后必做(workflow 第 5-6 步)
无论哪条轨道,产图后必须:
- 多模态视觉自检:严格执行
references/review-loop.md。必须显式调用 view_file 查看导出的 preview.png,利用多模态视觉能力复核文字符号渲染(无裸露 Markdown 标记)、图例与多图层索引匹配度、最高峰呼吸空间($\ge 10%$)、误差棒方向与颜色。
- 产出物打包:
- OPJU 工程文件(可编辑主交付)
- 用户/期刊需要的 PDF、EPS、EMF、SVG、PNG 或 TIFF 副本
- QA 报告与审阅 PNG
- 双语 caption 草稿(
caption.zh / caption.en)
- 参数符号清单(符号 | 含义 | 单位)
- 正文引用说明草稿(一段话)
- 会话资源自动释放:作图与导出完成后,必须显式调用
release_origin 工具(MCP 轨道)或 op.detach()(脚本轨道)自动关闭/断开 Origin 实例,防止句柄残留。
完整六步流程见 references/workflow.md。
关键约束
- 灰度是未指定颜色策略时的默认值;用户可选彩图。彩图优先使用
okabe-ito、tol-bright 或 tol-muted,且不得只靠颜色区分曲线。
- OPJU 是主交付;排版副本优先矢量格式,图像/连续色场可按期刊要求使用 TIFF/PNG。
- 字体:Times New Roman + 宋体;轴标题斜体单字母 + 正体括号单位。
- 字号默认 ≥ 9 pt;低于
qa.min_font_pt 必须报告。
- Origin 2024b,模板 .otpu 优先。
- 不把通用
my-journal 预设称为 Nature/IEEE/Elsevier 官方模板。
文件索引
| 路径 | 用途 |
|---|
schema/style-spec.md | StyleSpec 字段定义 + 示例 |
schema/reference-profile.schema.json | 参考图观察档案 JSON Schema |
references/style-guide.md | 期刊六条规范 + 硬默认值 |
references/style-extraction.md | 多模态提取八项清单 |
references/review-loop.md | 结构、像素和视觉四道审阅门 |
references/com-gotchas.md | COM/LabTalk 真机怪癖 |
references/workflow.md | 标准六步流程 |
templates/INDEX.md | 模板预设索引 |
scripts/plot_from_spec.py | 降级核心脚本 |
scripts/export_preview.py | 预览导出 |
scripts/audit_preview.py | 预览边界/留白/颜色模式自动预检 |
Pitfalls
save -t windowName fileName 必须双参数,缺窗口名静默失败。
- 切层用
page.active = n,layer -s 经 COM 静默无效。
- 双 Y 轴右轴标题是第 2 层的
yr 标签对象。
- 禁用
template_saveas X-Function(弹模态框卡死 COM)。
- 中文路径用
ensure_ascii_copy 先复制到 ASCII 临时路径再操作。
figure.grayscale 是 v1 兼容字段;v2 同时出现时以 figure.color_mode 为准。
expGraph 的宽度与 DPI 属于不同配置树;不得再用固定 8.6 cm 估算所有图。
- 自动 QA 不能判断审美是否协调;最终预览必须实际查看。
- 防止 Markdown 文本在 Origin 中泄露:Origin 不解析 Markdown
*t* 或 \Delta,必须使用 Unicode(如 t (ps)、ΔT/T₀ (10⁻³))或标准 Origin 标签 \it(t)。
- 多图层/双 Y 轴图例跨层索引:图例在 Layer 1 时引用 Layer 2 曲线必须使用双参数索引
\L(layer, plot)(如 \L(1, 2)),防止指向 Layer 1 的 Error Bar 导致图标样式严重错位。
- 垂直误差棒颜色与上限:
add_error_bars 需指定 direction="y" 且颜色跟随主散点系列,cap_width 保持在 $\le 2\text{ pt}$,避免水平长段遮挡。