ngplot-draw 是 NGplot 官方出图 skill。装在支持 SKILL.md 的 Agent 里(WorkBuddy、Codex、TraeWork等),
之后「画图」这件事就变成一段对话:你给数据和模板,它把中间所有琐碎环节做完。
不知道用哪个模板?把数据给它,它拿表头去对模板要求,给一系列候选模板并说清各自缺哪几列,你定了才动手。
先比对两侧表头,判「一致 / 可自动对齐 / 缺关键信息」,需要做格式整理或数据分析时时先给方案你确认,再写脚本。
每个任务留下数据、参数、属性、历史版本和一份投稿用的脚本 render.py,换台机器重跑还是同一张图。
两步:上传安装包 → 复制一句提示词。 不用解压到目录、不用改文件、不用装依赖,账号和密钥由 AI 写进配置并当场验证。
下载本页的 ngplot-draw-skill.zip,不用解压 —— 在 WorkBuddy 里按「技能 → 上传本地技能」选中它即可:
点开 ngplot-draw 技能,复制下面这段(把尖括号里的值换成自己的),直接粘贴发送:
ngplot-draw 配置:账号是 <账号>,ngplotApiKey 是 <密钥>,工作目录是 <比如 D:/ngplot-workspace>。
AI 会跑 scripts/set_config.py 把三项写进 config.json,并当场验一次账号和密钥 ——
验不过就不写,原配置不受影响。地址一项都不用配。
两个常见场景:数据本来就是模板要的样子,或者手里只有原始记录、得按模板的数据要求先算一遍。 两条路都从「模板编号 + 数据」开始,区别只在中间要不要处理数据。
你在官网挑好了模板,手里那份表也正好是模板要的列(分组、数值、误差都齐)。把模板编号和数据文件一起发过去 —— 取模板要求、对表头、出图、按你的意见续改,一路到底,中间只在「对不齐」时才会来问你。
「按模板 67d9443b11eeb4461e7205df 画这张表:D:/data/exp.xlsx」。
编号就是官网地址栏里 ?id= 后面那一串,给一位都不差。
列名对得上就直接开工;对不上(要转置、改列名、把重复测量算成均值±标准差)会先给一份对齐方案, 你点头它才写处理脚本,不擅自猜你的数据。
「柱子换深蓝」「纵轴标题写 Dry weight (g)」—— 这些都是这个任务的续改,每版留档,随时能回到上一版。 要 PDF / PNG / TIFF 说一声就行,300 dpi 起、透明底或白底可选。
数据是记录表:每个处理组一列、重复测量堆在一起,没有现成的均值和标准差。模板照样由你指定 —— 它读这个模板的数据要求(要几列、每列装数值还是分组、误差怎么给),把你的原始表折算成模板要的样子, 中间的统计处理写进可复跑的脚本,然后才出图。
「按模板 67d9443b11eeb4461e7205df 画,数据在 D:/data/raw.xlsx,
是三个品种、四个处理的干重原始记录」。表头乱、有空行、数值带单位都没关系,先给它。
模板要哪几列、每列装数值还是分组、误差是单独一列还是要现算 —— 一条条对上,告诉你缺什么:
比如「模板要 value + sd 两列,你只有一个宽表,分组还挤在表头里」。
转长表、按组算均值±标准差、算 p 值做显著性字母标记,都写进一个 prep.py。
口径它不替你做主(SD 还是 SE、误差按哪个分组算),先问你;数据更新了重跑脚本就行。
图出好后可以顺手让它检查一遍:轴范围合不合理、图例挡没挡数据、显著性字母有没有错位。 它只讲看得见的事实,不硬凑显著性,也不替你编结论。
prep.py 里skill 不是「必须一直对话改图」。每个任务都带一个任务详情页,里面把这张图的画图元数据按顺序摆好了 —— 一键复制、粘到官网,剩下的你在网页上点。对话和手动,随时能换手。
整理数据(宽表转长表、算均值±标准差、拆列改名)、填运行参数、找那些你叫不出名字的属性节点 —— 属性树几百个节点,你说「柱子描边细一点」,它去翻成具体的键和值。
你熟的那部分。颜色差一档、字号差两磅、图例想挪个位置 —— 在官网上点两下就看见了, 比来回描述快得多,也不用怕自己描述得不准。
官网调出满意效果后,把改法告诉它一句,它把这份属性固化进任务、记成一个版本。 下次换数据、同一模板,直接沿用,不用再调一遍。
按钮在「在官网打开这个模板」后面。复制到的内容按 ##id(模板编号)、##arg(运行参数)、
##props(属性)、##data1(数据)分段,多份数据依次往下排。
点「在官网打开这个模板」跳过去,把整段贴进画图页的配置区就行,各段自己对号入座。 数据和参数不用你再填一遍。
属性面板里改一处,图当场重画;不想要的效果直接撤回。调顺了想留档,就把改动发回对话, 让它更新这个任务、记一版,而不是重新开一个。
任务都落在你自己配的工作目录里,不在 skill 里面 —— 打开文件夹就能看到全部东西。
<work_dir>/ ├─ 任务总览.html 所有任务的货架:缩略图 + 筛选 + 点进详情 ├─ 刷新总览.bat 一键刷新并打开总览页 ├─ _trash/ 任务清理区 └─ 任务/ └─ 干重汇总柱状图-67d944/ 模板层:同一模板的任务聚在一起 └─ 20261018-干重汇总/ 任务层:一条迭代线 ├─ 任务详情-干重汇总.html 图 + 数据 + 参数 + 属性 + 版本,双击即看 ├─ out.svg 当前版本的图 ├─ data1.tsv 画图数据(固定不变) ├─ props.json / arg.json 改了哪些属性 / 运行参数 ├─ prep.py 数据处理脚本,可复跑 ├─ render.py 投稿用画图代码(自包含) ├─ result.md 交付说明:数据来源、结论、复跑命令 └─ history/v001_…/ 历史版本:属性 + 参数 + 图
SVG(矢量、可再改)、PDF(矢量、投稿)、PNG / TIFF(300 dpi 起,透明底或白底可选,dpi 可调)。
图、数据、参数、属性、版本时间轴全内联在一个 html 里。要手动微调, 一键复制画图配置粘到官网即可。
期刊要画图代码时交这个。单文件、只依赖标准库、不 import 本 skill,
密钥用 --api-key 传,不写死在代码里。
python render.py --api-key 你的密钥 --out myfigure
脚本里已经把模板、参数、属性、数据路径填好。换台机器时,数据路径找不到会自动退到脚本同目录的同名文件。
行。Excel / CSV / TSV 都能进,skill 会先做数据体检,需要转格式、改名、拆列时先给方案你确认,再生成画图用的 TSV。
最终喂给接口的必须是 TSV(制表符分隔、首行是列名、UTF-8);交逗号分隔会报图形引擎内部错误。
这是账号额度用完了,不是数据或模板的问题 —— 换个模板、改参数、重试都不会有用。
按提示联系客服(微信号 ngplot)或到 会员页面开通,之后再跑同一句话即可。
属性树里没有对应的节点,就是模板确实没有那个元素 —— 换模板重做,或在官网「需求榜」提需求。 skill 会明确告诉你「做不到」,不会硬凑一个看着像但其实不对的图。
可以。SVG 转 PDF 是服务端渲染(字体和排版跟出图一致),PNG / TIFF 默认 300 dpi、可选透明底或白底,dpi 可调。
如果期刊还要画图代码,交任务目录里的 render.py。
重新上传一次 zip,再把上面那句配置提示词发一遍就行 —— AI 会重写 config.json 并验证。
已经出的图和任务在 work_dir 里,单独搬即可;换目录就改提示词里的「工作目录」。
密钥只存在 config.json 一个文件里,出图脚本统一从那读。生成的 render.py 里没有密钥,
要用时命令行传 --api-key 或设环境变量 NGPLOT_API_KEY。