mcpField
F
figure-planner

figure-planner

github.com/boom5426ドキュメント637120 回インストール2 週間前に更新
リポジトリ

figure-planner について

figure-plannerは、研究者向けに科学図表とResults本文の構成を整えるスキルです。図全体を中心的な主張に沿って組み立て、各パネルの役割や凡例、視覚面を確認します。

主な機能

  1. 01中心的な主張に沿った図の計画
  2. 02各パネルの主要な役割の設定
  3. 03メイン図と補足資料の振り分け
  4. 04凡例・パネル・Results本文の整合
  5. 05書体・配色・レイアウトの確認

活用シーン

  1. 01情報過多な複数パネル図の再構成
  2. 02補足資料に移す結果の選定
  3. 03凡例とResults本文の整合

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/boom5426/nature-paper-skills --skill figure-planner

インストール後、Claude Code で/figure-plannerを入力して読み込まれたか確認します。

詳細

Figure Planner

概要

文を書くことではなく、図の論理がボトルネックになっている場合に、このスキルを使用します。各図が科学的に正当化できる役割を担い、パネルの構成に一貫性を持たせ、凡例と結果の本文が同じストーリーを伝えるようにすることが目標です。

このスキルの対象範囲は manuscript-optimizer より狭いものです。論文全体の構成が不安定な場合は manuscript-optimizer を使用してください。中心的な課題が、各図で何を証明すべきか、各パネルがどのような役割を果たすべきかである場合は、figure-planner を使用してください。

使用する場面

次のような場合に、このスキルを使用してください:

  • 図に情報が詰め込まれすぎている、断片的である、または要約しにくい
  • パネル数に引きずられて、結果の小見出しが多くなりすぎている
  • 本文の図と補足資料のどちらに何を掲載すべきかが不明確である
  • 凡例、パネルの文字ラベル、結果の本文の間に食い違いが生じている可能性がある
  • 作図上の都合ではなく主張を軸に、図のタイトルやパネルのグループ分けを再設計する必要がある

次の用途には、このスキルを使用しないでください:

  • 細かな視覚スタイルの調整のみを行う場合
  • 図を変更せずに最終校正を行う場合
  • 図の範囲を超える、原稿全体にわたる主張の再構成を行う場合

基本ルール

各メイン図は、中心となる主張を1つ担うことで、その掲載意義を示す必要があります。

図を明快な1文で要約できない場合は、次のいずれかを行ってください:

  • 図を分割する
  • 一部を補足資料に移す
  • より明確な主張を軸に図を作り直す

パネルの役割

凡例や結果の段落を書く前に、各パネルの主要な役割を1つ割り当てます:

  • 主張を裏付ける証拠
  • 方法論上の橋渡し、または定義
  • 新たな条件下での検証
  • 順位付け、またはベンチマーク比較
  • 実用化または実践上の帰結
  • 事例の提示
  • 所見として明示する帰無結果または否定的結果

1つのパネルに3つの役割を同時に担わせないでください。

計画の順序

  1. 図の主張を1文で書きます。
  2. その主張を裏付けるために必要な最小限のパネルを列挙します。
  3. 各パネルに1つずつ役割を割り当てます。
  4. アンカーパネルを決めます:
    • 結果の段落の中心となるパネル
  5. 二次的な詳細を次のいずれかに移します:
    • 別の図
    • 補足資料
    • 凡例
  6. 実際の主張に合うよう、図のタイトルと凡例を書き直します。
  7. 結果の小節が同じパネルの論理に沿っていることを確認します。

メイン図と補足資料

メイン図に残すもの:

  • 中心となる主張を確立するために必要なパネル
  • 読者がすぐに目にする必要のある主要な比較
  • 新しい指標、分解、または評価条件を定義するパネル(その定義が論旨の一部である場合)

補足資料に移すもの:

  • 頑健性のバリエーション
  • 手法ごとの詳細な比較
  • 追加の事例
  • 二次的なアブレーション
  • 中心的な主張を支えるが、その定義には関わらない追加例
  • インターフェース、互換性、または適用可否のマトリクス(どの手法がどの入力を受け付けるか、どのコホートがチェックに合格するか):SIの表、またはMethodsの1文に記載します。これらは棒グラフがない理由を説明するものです。メインパネルは科学的な問いに答えるものです

凡例のルール

凡例は、軸の読み方を説明するだけのものではありません。

各凡例では、次の点を満たす必要があります:

  • 各パネルの役割を定義する
  • 圧縮された本文から省かれた主要な定量的基準を残す
  • パネルの文字ラベル、指標、データセット、ベースラインとの一貫性を保つ
  • プロットされた証拠より強い解釈を避ける
  • 解釈の弁明(「~によって選択されたものではない」「完全性のために掲載」「比較すべきではない」など)を含めない。代わりに、比較可能性を決める事実(異なるパネル、異なる n など)を明示する
  • 直感に反する値は、数量の意味を説明して肯定的に示す(たとえば、包除原理による重なりはわずかに負になることがあります)
  • 提供されている場合に限り、Source Dataファイル名を記載する

図の流れ

論文全体を通して、図 1 では論文の要点を一文でデータとして示します。アーキテクチャではなく、対象範囲を示します。 後続の図では、メカニズム、エビデンス、堅牢性、応用を扱います。各パネルを論文の要点とその図自体の主張の両方に照らして評価し、ストーリー上必要であれば、図の間で内容を移動させます。figure-style のルール 7.5 でこの項目を参照しています(figure-style は図のスタックの一部で、--figure とともにインストールされます)。

視覚的な仕上げ

図の構成が固まったら、視覚的な仕上げを一度行います。

  • 図内のフォントに一貫性を持たせ、原稿の読み取り時の文字サイズに近づけます
  • 可能であれば、プロット、図、模式図のパネルにはベクターグラフィックスを使用します
  • 控えめな配色を選び、同じカテゴリには同じ色系統を使います
  • 意図的に強調するのでない限り、特定のパネルやモジュールだけが大幅に暗く、または明るくなり、意図せず目立つことを避けます
  • パネル周辺の不要な余白や空白を取り除きます
  • 図内のテキスト量を減らし、図形、整列、グループ化を活用して説明します
  • 図で流れやプロセスを示す場合は、矢印の向きと記号の使い方に一貫性を持たせます
  • 必要に応じて、実績のある表やパネルの配置をレイアウトの参考にします。ただし、会議テンプレートの煩雑さをそのまま引き継がないでください

よくある失敗

  • 1 つの図に、互いに関連のない複数の主張を詰め込む
  • 論理の流れではなく、プロット作成の順番に沿ってパネルを並べる
  • 方法論をつなぐパネルを、一般的な動機付けとして説明する
  • 図注やパネルで裏付けられていないことを、結果の本文で主張する
  • 実際には 1 つのパネルが重要な役割を果たしているのに、補足図を曖昧に引用する
  • 弱い補助指標を主要な指標として残し、格下げしない
  • 図のタイポグラフィ、余白、色使いに一貫性がなく、科学的な比較が読み取りにくくなる

Nature スタイルの拡張

Matplotlib 図の標準

Nature または同等の影響力の高い学術誌に投稿する図には、以下の rcParams を適用します。

import matplotlib.pyplot as plt

MM = 1 / 25.4

plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.sans-serif'] = ['Arial']
plt.rcParams['svg.fonttype'] = 'none'          # editable text in SVG
plt.rcParams['pdf.fonttype'] = 42              # editable TrueType text in PDF
plt.rcParams['font.size'] = 7                  # 5-7 pt at final printed size
plt.rcParams['axes.spines.right'] = False
plt.rcParams['axes.spines.top'] = False
plt.rcParams['axes.linewidth'] = 0.8           # 0.75-1 pt at final printed size
plt.rcParams['legend.frameon'] = False

fig = plt.figure(figsize=(89 * MM, 60 * MM))   # single column; 183 mm double

text.usetex = True を使用するのは、LaTeX がインストールされていて、数式を多く含むラベルが必要な場合に限ります。

印刷時のスケールとデザイン時のスケール

上記の数値は印刷時のスケールです。キャンバスは印刷時のパネルと同じ大きさなので、各サイズはすべて読者が実際に目にする大きさです。これはデフォルトの設定であり、より安全な方法です。

一方、デザイン時のスケールで作成された図もあります。この場合、キャンバスは印刷時の幅の S 倍で、書き出し時に段幅に合わせて縮小されます。よく使われる値は S を 4 前後にする方法で、この場合、font.size = 24 はページ上で 6.1 pt に、axes.linewidth = 3 は 0.76 pt になります。これらの値は使用できますが、縮小後に限ります。次の 2 つのルールに従ってください。

  • 1 つのスクリプト内で、異なるスケール設定を混在させないでください。S を選び、コメントに記載し、すべての絶対サイズを S で割ってください。
  • デザイン時のスケールでは、ラスター形式のみを書き出します。図が線画なら、印刷時のスケールを使ってベクター形式で書き出してください。棒グラフを縮小した PNG は、本来ベクター形式のままにすべきものをラスター化してしまうためです。
Nature スタイルのパレット

図に印刷向けの固定パレットが必要な場合は、Nature Communications や同等の学術誌に適した、温かみのある Nature スタイルの配色が便利です。ベースラインまたは参照系列をテラコッタにし、残りのカテゴリにはリストの上から順に色を割り当て、同じカテゴリには同じ色系統を使います。

#C96144  terracotta (baseline / reference)   #99C290  light green
#E99D4E  amber                                #C0BEDC  light purple
#5185C0  blue                                 #8EA9D4  light blue
#8281B9  purple                               #F2CB9F  light amber
#55966B  green                                #99AABB  grey-blue
#FFB3C1  pink        #FFD3E0  light pink       #87CEEB  sky blue
NATURE_PALETTE = [
    "#C96144", "#E99D4E", "#5185C0", "#8281B9", "#55966B",
    "#99C290", "#C0BEDC", "#8EA9D4", "#F2CB9F", "#99AABB",
    "#FFB3C1", "#FFD3E0", "#87CEEB",
]

def nature_assign(labels, baseline=None):
    """Map labels to palette colors, one distinct color per label.

    The baseline/reference series gets terracotta and the rest walk the palette
    in order. Raises rather than reusing a color: two series sharing one color
    silently breaks the figure's color threading.
    """
    has_baseline = baseline is not None and baseline in labels
    available = NATURE_PALETTE[1:] if has_baseline else NATURE_PALETTE
    others = [label for label in labels if label != baseline]
    if len(others) > len(available):
        raise ValueError(
            f"{len(others)} series but only {len(available)} distinct colors "
            "available; group related series into one color family, or move "
            "some of them to a separate panel"
        )
    result, idx = {}, 0
    for label in labels:
        if has_baseline and label == baseline:
            result[label] = NATURE_PALETTE[0]
        else:
            result[label] = available[idx]
            idx += 1
    return result
使用する場面
  • Nature、NeurIPS、ICLR などを対象とする論文、スライド、レポート用の図。
  • グループ化された棒グラフ、トレンドライン、ヒートマップ、レーダープロット、マルチパネルグリッド、または PDF/SVG/高 DPI 出力に関する依頼。
  • 「Nature スタイル」「出版用の図」「論文用の図」「高品質な科学プロット」への言及がある場合。

出力基準

このスキルを使用する場合は、次の内容を作成します。

  • 図の主張を一文で示したもの
  • 役割を添えたパネル案の一覧
  • メインの図に残す内容と、補足資料に移す内容
  • 凡例の構成
  • 引き続き対応が必要な視覚的な仕上げの項目
  • 対応する「結果」セクションの小見出し、またはトピックセンテンス

コメント