figures — 出版級品質的 gnuplot 圖表
將自然語言需求與一或多個數據檔案轉換為符合團隊風格的、可直接用於論文的 PDF 圖表。處理常見的磁性材料圖表類型、可選配色方案以及期刊/簡報風格設定。
先決條件
gnuplot(v6+)— 繪圖引擎。直接透過pdfcairo渲染 PDF。pdftoppm(poppler)— 將輸出的 PDF 轉換為 PNG,以便您查看圖表並迭代修改。請務必以視覺方式檢查結果。
樣式/配色如何載入 — GNUPLOT_LIB(重要)
腳本透過裸名稱載入共用樣式檔案,例如 load "nature.journal" 和 load "bluegold.colour"。gnuplot 透過 GNUPLOT_LIB 搜尋路徑找到這些檔案。執行 gnuplot 時務必將 GNUPLOT_LIB 指向此技能資料夾下的 styles/ 和 colours/ 目錄:
以下 SKILL_DIR 是此技能資料夾本身的絕對路徑(包含此 SKILL.md 的目錄,例如若是個人安裝則是 ~/.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%,透過 journal 檔案中的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),帶有 Curie–Bloch 擬合。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— 配色方案目錄與選擇指南。