Community图像github.com

richard-evans/figures

使用 gnuplot 从模拟数据或列数据生成适合出版的高质量 2D 科学图表。当用户想要为论文、报告、答辩或海报制作、绘制或渲染图表/图形时(特别是磁学图,如磁滞回线 (M vs H)、温度依赖磁化强度 (M vs T) 和时间序列 (M vs t)),包括选择配色方案、应用期刊/演示文稿样式、添加坐标轴标签和单位以及拟合曲线。

figures 是什么?

该技能旨在将自然语言请求与一个或多个数据文件相结合,自动生成符合团队内部风格、可直接用于出版的 PDF 格式图表。它专门针对磁学领域常见的图表类型(如磁滞回线、磁化强度-温度曲线、磁化强度-时间序列)进行了优化,并内置了多种可选的配色方案(如 Viridis、Magma、BlueGold 等)和样式文件(如 Nature 期刊风格、演示文稿风格)。 其核心工作流程包括:根据用户请求识别图表类型,检查数据文件的结构和列映射,从示例目录中复制并适配对应的 gnuplot 脚本,设置样式和配色,然后通过 GNUPLOT_LIB 环境变量加载共享资源文件,最终渲染出 PDF 并转换成 PNG 供用户查看和迭代。该技能支持 Cursor、Claude Code 等 AI 编码工具,用户只需描述需求并提供数据文件,即可获得可复现的 gnuplot 脚本和最终图表。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/richard-evans/research-skills/tree/HEAD/figures

Installed? Explore more 图像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

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                        # 在包含数据的目录中运行

将路径排除在脚本之外意味着脚本是可移植的,并且对样式文件的更改将传播到加载它的每个图表中。

工作流程

  1. 根据请求确定图表类型(参见 references/figure-types.md):磁滞回线 M(H),磁化强度 M(T),时间序列 M(t),或其他。每种类型都有一个规范的示例脚本可供复制。
  2. 检查数据。 查看文件:去除注释行 (#),统计列数,检查范围。映射哪些列是 x 和 y。VAMPIRE 输出文件是纯空格分隔的列,带有 # 注释头;如果数据文件旁边有 VAMPIRE 输入文件,其 output: 关键字定义了列的顺序 — 阅读它以正确标记列。否则将数据视为通用列,并在有歧义时与用户确认映射关系。
  3. 从 examples/<type>/ 复制匹配的示例 作为起点并进行调整:数据文件名,using 列,坐标轴标签和单位,坐标轴范围(在第一个和最后一个主刻度两端各超出 5% ,可通过期刊文件中的 padlo/padhi 或 lpadlo/lpadhi 实现,参见 references/conventions.md),图例标签以及任何拟合。
  4. 选择样式和配色方案(默认值如下;尊重任何明确请求)。通过脚本顶部的两行 load 语句设置它们。
  5. 渲染:设置 GNUPLOT_LIB 后运行,生成 PDF。
  6. 查看输出:使用 pdftoppm -png -r 150 out.pdf preview 进行转换并读取 PNG 文件。检查是否有被裁剪的标签、图例重叠、刻度密度、颜色对比度。迭代修改脚本直到图表清晰无误。
  7. 交付 .gpl 脚本和 PDF。图表必须能够仅从脚本和数据重现。

默认值

  • 样式: nature.journal(86 mm 单栏,Helvetica,适合印刷)。
  • 配色方案: bluegold.colour(团队内部默认值)。
  • 输出: 通过 pdfcairo 直接输出 PDF — 切勿使用 EPS→PDF 管线。

样式 (styles/)

文件用途
nature.journal默认。 双栏期刊的单栏宽度 (86 mm);浅色背景,Helvetica 字体。
inverted.journal深灰色背景,浅色前景 — 用于深色幻灯片/网页。
presentation.journalAvenir 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 — 配色方案目录及选择指南。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能