figures — 出版物品質のgnuplot図作成 は何をしますか?
自然言語のリクエストと1つ以上のデータファイルから、グループハウススタイルで論文提出可能な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 はこのスキル自身のディレクトリ(この 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カラム、軸ラベル+単位、軸範囲(ジャーナルファイルのpadlo/padhiまたはlpadlo/lpadhiを用いて最初と最後の主目盛りの5%外側まで拡張、references/conventions.md参照)、凡例ラベル、フィット式を適応します。 - スタイルと色スキームを選択します(デフォルトは後述。明示的なリクエストがあればそれに従います)。スクリプト先頭の2つの
load行で設定します。 GNUPLOT_LIBを設定した状態でレンダリングし、PDFを生成します。- 出力を確認する:
pdftoppm -png -r 150 out.pdf previewで変換し、PNGを読みます。ラベルのクリップ、凡例の重なり、目盛りの密度、色のコントラストを確認します。きれいになるまでスクリプトを反復調整します。 .gplスクリプトとPDFを提供します。図はスクリプトとデータのみから再現可能でなければなりません。
デフォルト
- スタイル:
nature.journal(86mm シングルカラム、Helvetica、印刷対応)。 - 色スキーム:
bluegold.colour(ハウスデフォルト)。 - 出力:
pdfcairo経由の直接PDF — EPS→PDFパイプラインは使いません。
スタイル (styles/)
| ファイル | 用途 |
|---|---|
nature.journal | デフォルト。 2カラムジャーナル用シングルカラム幅(86mm)、明るい背景、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— スキームカタログと選択ガイド。