figures — 可用于出版的 gnuplot 图表
将自然语言请求与一个或多个数据文件相结合,按照团队内部风格生成可直接用于论文的 PDF 图表。处理常见的磁学图表类型、可选择的配色方案以及期刊/演示文稿样式。
前提条件
gnuplot(v6+) — 绘图引擎。通过pdfcairo直接生成 PDF。pdftoppm(poppler) — 将输出的 PDF 转换为 PNG,以便 查看图表 并进行迭代。请务必目视检查结果。
样式/颜色的加载方式 — GNUPLOT_LIB (重要)
脚本通过裸名称加载共享样式文件,例如 load "nature.journal" 和 load "bluegold.colour"。gnuplot 通过 GNUPLOT_LIB 搜索路径查找这些文件。请务必在设置 GNUPLOT_LIB 指向本技能的 styles/ 和 colours/ 目录后运行 gnuplot:
下面的 SKILL_DIR 是本技能自身目录的绝对路径(例如个人安装时为 ~/.claude/skills/figures,或开发时的仓库路径)。请替换为实际路径:
SKILL_DIR="/absolute/path/to/figures" # 包含此 SKILL.md 的目录
export GNUPLOT_LIB="$SKILL_DIR/styles:$SKILL_DIR/colours"
gnuplot myfigure.gpl # 在包含数据的目录中运行
将路径排除在脚本之外意味着脚本是可移植的,并且对样式文件的更改将传播到加载它的每个图表中。
工作流程
- 根据请求确定图表类型(参见
references/figure-types.md):磁滞回线 M(H),磁化强度 M(T),时间序列 M(t),或其他。每种类型都有一个规范的示例脚本可供复制。 - 检查数据。 查看文件:去除注释行 (
#),统计列数,检查范围。映射哪些列是 x 和 y。VAMPIRE 输出文件是纯空格分隔的列,带有#注释头;如果数据文件旁边有 VAMPIRE 输入文件,其output:关键字定义了列的顺序 — 阅读它以正确标记列。否则将数据视为通用列,并在有歧义时与用户确认映射关系。 - 从
examples/<type>/复制匹配的示例 作为起点并进行调整:数据文件名,using列,坐标轴标签和单位,坐标轴范围(在第一个和最后一个主刻度两端各超出 5% ,可通过期刊文件中的padlo/padhi或lpadlo/lpadhi实现,参见references/conventions.md),图例标签以及任何拟合。 - 选择样式和配色方案(默认值如下;尊重任何明确请求)。通过脚本顶部的两行
load语句设置它们。 - 渲染:设置
GNUPLOT_LIB后运行,生成 PDF。 - 查看输出:使用
pdftoppm -png -r 150 out.pdf preview进行转换并读取 PNG 文件。检查是否有被裁剪的标签、图例重叠、刻度密度、颜色对比度。迭代修改脚本直到图表清晰无误。 - 交付
.gpl脚本和 PDF。图表必须能够仅从脚本和数据重现。
默认值
- 样式:
nature.journal(86 mm 单栏,Helvetica,适合印刷)。 - 配色方案:
bluegold.colour(团队内部默认值)。 - 输出: 通过
pdfcairo直接输出 PDF — 切勿使用 EPS→PDF 管线。
样式 (styles/)
| 文件 | 用途 |
|---|---|
nature.journal | 默认。 双栏期刊的单栏宽度 (86 mm);浅色背景,Helvetica 字体。 |
inverted.journal | 深灰色背景,浅色前景 — 用于深色幻灯片/网页。 |
presentation.journal | Avenir Next 字体,大画布 — 用于投影演讲幻灯片。 |
presentation-dark.journal | 深色背景上的演示文稿样式。 |
配色方案 (colours/)
默认:bluegold,除非另有要求。顺序/感知型(matplotlib 和 MATLAB 系列):viridis,magma,inferno,plasma,cividis(色盲友好),parula。发散型:bluegold,skyrmion(深蓝 → 白 → 红,用于有符号量,如 s_z),RdYlBu。单色调:purple。彩虹色:turbo(改进版),jet(不推荐 — 不具有感知均匀性)。每个都定义了离散的系列线型 ls 1–ls 8 以及一个连续的 pm3d 调色板。请参阅 references/colour-schemes.md 了解何时使用每种颜色以及深浅色搭配。
图表类型和示例
规范、带有注释且可运行的脚本位于 examples/ 中:
examples/mvsH/MH.gpl— 磁滞回线 M(H),带零轴参考线。examples/mvsT/mvsT.gpl— 磁化强度 M(T),带居里-布洛赫拟合。examples/mvstime/mvstime.gpl— 多曲线退磁时间序列(使用合成数据,通过make_data.py重新生成)。examples/anisotropy-surface/3D.gpl— 3D 能量曲面:在 gnuplot 内部合成的光栅颜色和矢量轴(小巧且快速的 PDF;无需外部工具)。
参考资料
references/conventions.md— 团队内部图表规范(标签、单位、刻度、图例、拟合、增强文本语法)。references/figure-types.md— 每种类型的配方和列映射。references/colour-schemes.md— 配色方案目录及选择指南。