Community画像github.com

DrNbnonono/paper-figures

セキュリティ/システム論文(IEEE S&P、USENIX Security、CCS、NDSS、ジャーナル、IEEE S&P Magazine)向けの図を設計、描画、検証します。トップ4会議の強い論文スタイルに準拠。主張に適したチャート選択、印刷対応の図作成、主張を伝えるキャプション作成、Matplotlib図のカメラレディベクターPDF変換を支援。合成データを用いた実行可能なサンプル(examples/)、Matplotlibスタイルモジュール(scripts/figure_style.py)、ジェネレーター(scripts/make_examples.py)、提出前チェッカー(scripts/check_figure.py)を同梱。

paper-figures とは?

このAIエージェントスキルは、セキュリティおよびシステム分野のトップ会議論文(IEEE S&P、USENIX Security、CCS、NDSSなど)向けに、高品質な論文用図を作成するための包括的なガイドとツールを提供します。主な機能は、図の設計原則の提示、Matplotlibを用いた具体的な作図コードの生成、印刷およびアクセシビリティ対応のチェック、そしてキャプション作成の支援です。スキルは、`scripts/`ディレクトリ内のPythonモジュール(スタイル適用、図生成、事前チェック)と、`references/`内の詳細なガイド(エンコーディング、スタイル仕様、キャプション作成法、アクセシビリティ)で構成されています。主要なプラットフォーム(Claude Code, Cursor, Codexなど)で使用可能で、ユーザーは自然言語で図の目的を説明するか、データ分析コードを提供することで、このスキルのガイドラインに沿った図を生成できます。このスキルは、論文執筆の「図作成」という専門的で反復的な作業を大幅に効率化し、トップ会議の水準に達する図を一貫して作成することを可能にします。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/DrNbnonono/skills/tree/HEAD/paper-figures

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

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

論文図

図とは、可視化された議論です。読者がキャプションを読む前に5秒間図を見て、その図が主張することを言える場合にのみ、その図は掲載する価値があります。このスキルのすべては、そのテストに合格するためにあります。

ここでコード化されているスタイルは、S&P、USENIX Security、CCS、NDSSの強い論文が共有するものです。 小型、ベクター、2段組み幅の図。表示項目は少数。直接ラベル。印刷に安全な色。軸を説明するのではなく、重要なポイントを述べるキャプション。

核となる原則

1つの図 = 1つの主張 = キャプションの1つのメッセージ

2つの主張を示す必要がある場合は、2つのパネルまたは2つの図を描いてください。3つのことを示す図は、どれ一つとして伝わりません。

絶対条件

  1. 図ごとに1つのメッセージ。 キャプションの最初の文がそれを述べ、グラフィックがそれをサポートします。
  2. 印刷サイズで描く。 1段組みの図は幅3.5インチ(IEEE)、3.33インチ(ACM sigconf)、3.4インチ(USENIX)。大きく描いてLaTeXで縮小しないでください。フォントが7 ptの下限を下回ります。
  3. ベクター出力(matplotlibから.pdf)。テキストや線があるものはすべてベクターに。写真やスクリーンショットにのみ300 dpiラスターを使用。
  4. 印刷サイズでフォントサイズ ≥ 7 pt。軸ラベル8 pt、目盛ラベル7 pt。
  5. 印刷に安全な色:岡部・伊藤パレット。色だけで区別しない。図はグレースケールでも判読できること(scripts/check_figure.py --previewで確認)。
  6. 誤解を招く軸は禁止:棒グラフはゼロから開始。対数軸はラベルを付ける。差を誇張するためにy軸を途中から表示しない。明示的で理由が述べられていない限り、二重y軸は禁止。
  7. 不確実性を示す:主張が定量的な場合は、信頼区間、誤差範囲、またはキャプション内のnを表示。分母のない点推定値は結果ではありません。
  8. キャプションは気付くべきことを述べる、次に単位、次にn。色のリストではありません。
  9. チャートジャンクは禁止:3-D、影、装飾としてのグラデーション、虹色マップ、背景塗りつぶし、データと競合するグリッド線は禁止。
  10. 再現可能:図を生成したスクリプトが、データファイルまたはシードとともに、リポジトリ内で図の隣に存在すること。誰も再生成できない図は、カメラレディの段階では責任の種です。

ステップ0 — 最初に主張を決める

図が一目で明らかにしなければならない主張を、一文で書きなさい:

「公開エクスプロイトコードは、現在ではアドバイザリよりも早く出現する。30日間のアーティファクト対アドバイザリ比は、4つの時代を通じて0.63から1.83に上昇した。」

「そして」なしでその文を書けないなら、それは2つの図です。

matplotlibに触れる前に、templates/figure-brief.mdを記入してください。2分で完了し、最も一般的な手戻り(美しいが間違った量を示す図)を防ぎます。

ステップ1 — 主張からエンコーディングを選択する

references/encoding-guide.mdを読んでください。簡易版:

主張の種類エンコーディング避けるべきもの
分布 / 速さCDF(階段状)、バイオリン、箱ひげ、ストリップばらつきのない平均値の棒グラフ
ペア比較ダンベル、スロープ、ペアの点2つの浮遊棒グラフ
時間経過に伴う構成積層面グラフ、スモールマルチプル円グラフ、3-D円グラフ
ランキングソートされた水平棒グラフ、ドットプロット順序なし棒グラフ、虹色
2変数のトレードオフ散布図 + パレートフロンティアサイズが読めないバブルチャート
マトリックス / カバレッジ知覚的に一様なマップとセル内値を持つヒートマップ値なしの虹色ヒートマップ
プロセス / タイムラインスイムレーン、タイムライン、シーケンス図散文の日付の表
分類 / 決定ラベル付きツリー、セルが埋められたマトリックスネストされた箇条書きテキスト

ステップ2 — 共有スタイルで描く

import sys; sys.path.insert(0, "scripts")
from figure_style import apply_style, new_fig, save, SERIES, panel_label

apply_style()                       # 8 pt ベース、岡部・伊藤、印刷安全 rcParams
fig, ax = new_fig(3.5, 2.3)         # 1段組み、適切なアスペクト比
ax.plot(x, y, color=SERIES[0], label="Pre-AI")
save(fig, "figs/fig1_cdf")          # .pdf (LaTeX用) + .png (プレビュー用) を書き出す

スタイルはグローバルに調整し、図ごとには決して行わないでください。1つの論文内でフォントや線の太さが異なる2つの図は、異なる論文のように読まれます。

references/style-spec.md にすべての設定とその理由がリストされています。

ステップ3 — 直接ラベル、キャプションは最後

  • 系列名は凡例ボックスではなく、線の終わりかプロット上に配置します。直接ラベルが衝突する場合のみ凡例を使用します(examples/fig01_cdf.png参照)。
  • パネルラベル A、B、C は左上に太字で配置し、キャプションから参照します。
  • 軸ラベル:量 + 単位 + スケール(開示からの日数(対数スケール))。
  • 次に、references/captions.md を使用してキャプションを書きます。重要なポイント → 軸が示すもの → 単位/n/信頼区間 → 読者が見逃してはならない唯一の注意点。

ステップ4 — 印刷対応にする

  • パレット:scripts/figure_style.py の SERIES(岡部・伊藤)。連続データ:cividis、決して jet ではありません。発散:RdBu_r、意味のあるゼロの周辺のみ。
  • 形状でもエンコードする:マーカーと線種も系列によって変化させることで、図がグレースケール印刷や色覚異常の査読者にも耐えられるようにします。
  • チェッカーを実行:
python scripts/check_figure.py figs/fig1_cdf.png --preview

サイズ/dpi、色パレット、グレースケールと2型色覚(deuteranopia)の分離を報告し、fig1_cdf_gray.png / fig1_cdf_cvd.png を書き出します。両方を確認してください。

references/accessibility.md で詳細(コントラスト、CVD、代替テキスト)を説明しています。

ステップ5 — エクスポートして組み込む

  • 埋め込みTrueTypeフォントを使用してベクターPDFにエクスポート(pdf.fonttype = 42、既に設定済み)。
  • 印刷幅でインクルード:\includegraphics[width=\columnwidth]{figs/fig1_cdf.pdf}。
  • コンパイルされたPDFを100%で確認:7 pt未満のテキストがないか、ラベルのクリップがないか、図の高さが半段を超えていないか(論文の主要な概念図でない限り)。
  • references/production.md でLaTeXのインクルード、フォント埋め込み、ファイルレイアウトを説明しています。

ステップ6 — 査読者のように検証する

  1. 5秒テスト:図だけを誰かに見せる。その人は主張を述べられますか?
  2. キャプションテスト:最初の文は主張であるべきで、「図3は…を示している」ではありません。
  3. グレースケールテスト:両方のプレビューが正しく読めるか。
  4. ズームテスト:コンパイルされたPDFの100%で、すべてのラベルが読めるか。
  5. 整合性テスト:図の数値が表や本文と一致しているか。軸が途中から始まっていないか。誤差範囲がキャプションで定義されているか。
  6. 再利用テスト:PNGを削除する。スクリプトはバイト単位で同じものを再生成しますか? そうあるべきです。

表示項目の予算

会議体の種類表示項目の総数備考
トップ4会議6–10概念図1つ、タイムライン1つ、結果表。すべての項目が本文で参照されていること
マガジン4–6項目ごとに1つのメッセージ。付録の代わりにサイドバー
ジャーナル8–12より多くの余地があるが、同じルール

図が本文で主張とともに参照されていない場合(「図5はXを示している」)、削除するか文を書き直してください。

アンチパターン

アンチパターン失敗する理由
虹色/jetカラーマップ知覚的に順序づけられていない。誤解を招く値。グレースケールで読めない
3-Dまたは影付きの棒/円グラフ比較を歪める装飾
3スライスを超える円グラフ人間は角度の比較が苦手。ソートされた棒グラフを使用
二重y軸データがサポートしない相関主張を招く。2つのパネルを使用
棒グラフのy軸を途中から表示差を誇張する。査読者は気づく
6エントリの凡例ボックス色のマッチングを強制する。直接ラベルかスモールマルチプルを使用
LaTeXで縮小された小さなテキストフォントが7 ptを下回る。図が灰色のノイズになる
色を列挙するキャプション「青い線は…を示す」は読者が見えることを超えて何も伝えない
表のスクリーンショットベクターでなく、編集可能でなく、アクセス可能でない
表を言い換える図表示項目の無駄。主張をサポートする方を残す
ラベルのない対数軸読者は桁をまたいだ傾きを比較できない
n / 誤差範囲の欠如不確実性のない点推定値は証拠ではない

リソースマップ

ファイル用途
references/venue-figure-profiles.mdトップ4会議の期待事項、段幅、キャプション/配置ルール
references/encoding-guide.md主張 → チャートマッピング、対数スケール、不確実性、表が勝つ場合
references/style-spec.md理由付きのすべてのmatplotlib設定。パレットの16進コード
references/captions.mdキャプションの公式と before/after の例
references/accessibility.md色覚異常とグレースケールの安全性、コントラスト、代替テキスト
references/production.mdエクスポート、LaTeXインクルード、フォント、ファイルレイアウト、再現性
references/anti-patterns.md削除すべきものと、それを示す例
scripts/figure_style.pyrcParams、岡部・伊藤パレット、new_fig、save、panel_label
scripts/check_figure.pyサイズ/dpiチェック、グレースケールと2型色覚プレビュー、パレットレポート
scripts/make_examples.pyすべてのサンプル図を生成(合成データ)
examples/参照画像:良い例と悪い例vs良い例のペア
templates/figure-brief.md描画前の1ページの概要

関連スキル