出版品質の図表ルール
正確で読みやすく、内部で一貫性のある科学図表のためのチェックリスト。このスキルは視覚的なハウススタイル(フレーム、フォント、パレット)を強制しません。これらはパラメータとして設定可能です。プロットする前に、以下のNotebook呼び出しに従い、apply_figure_style()を呼び出してください。
オープンサイエンスNotebook呼び出し
このスキルに含まれる関数を使用するnotebook_executeリクエストは、以下のスキルIDを含みます:
{ "kernelSkillIds": ["figure-style"], "code": "apply_figure_style()\n..." }
kernelSkillIdsにはスキルIDが含まれます。関数呼び出しはcodeに記述します。このリクエストは記述されたまま完全であるため、名前付き関数を直接呼び出し、インポートや発見のステップは追加しないでください。
§0 適用範囲
読み込みトリガー(システムプロンプトの「出版品質のプロット」セクションと同じルール):このスキルは最終納品用の図表(レポート、論文、エクスポートで出荷されるもの、またはユーザーが保存するアーティファクト)に使用します。探索的/中間的なプロット(クイックルック、EDA、健全性チェック)には使用せず、これらはこのスキルなしで簡潔に描画されます。読み込まれた後、以下の「すべてのプロット」とは、納品物に向けてレンダリングするすべてのプロットを意味します。
§1~§3、§8、§9は正確性に関するもので、すべてのプロット、すべてのコンテキストに適用され、審美的な内容は含みません。§4~§7はガイダンスであり、クリーンな結果を生み出すデフォルトを提供しますが、意図的な代替案で上書きできます(ただし、§4~§7内で事実/知覚的不変性を述べている個別のルール(例:§4.4 意味論的ゼロ中心化、§4.5 CVD、§6.9 リーダーアンカリング)は依然として拘束力を持ちます)。このスキル単体では内部層(1つのプロットを適切にする)であり、figure-composerとpaper-narrativeがマルチパネルと論文全体のコンテキストを提供します。
§1 データの忠実性と自己一貫性
1.1 除外行。 ソースデータで除外またはフラグが立てられた行は、完全に省略するか、視覚的に区別できる開いた/ハッチングされたマーカーで描画し、凡例に名前を記載します。含まれる行と一緒にプロットされた要約統計量に決して含めてはいけません。
1.2 比較可能な条件のみ。 比較不可能な条件(異なるN、エポック予算、初期化、プロトコル)で測定されたアームは、視覚的な同等物としてプロットしてはいけません。ファセット区切りまたはラベルのマーカーでそれらを分離し、キャプションにその違いを一度記載します。
1.3 自己一貫性。 図表内のすべての凡例、しきい値、タイトルは、プロットされたすべての行によって満たされなければなりません。保存する前に、各カテゴリ出力ラベルをそれを定義するルールまでさかのぼって確認します。行の値がそのラベルまたはタイトルと矛盾する場合、データではなく図表が間違っています。
1.4 主張タイトルは真実でなければなりません。 文タイトル(§5.1)は、レンダリング前に軸上のすべてのカテゴリに対してテストされます。いずれかが矛盾する場合、タイトルを限定する(「4組中3組で」)か、説明に格下げします。
1.5 nと固定されたものを明記。 要約マークを描画するすべてのパネルは、nと反復の単位を記載し、変数を固定したすべての小規模多重プロットは、固定値を記載します。パネル内、または§2の予算が厳しい場合はキャプション内に記述します。
1.6 参照構造は参照。 コンテキスト(スケールバー、カテゴリストリップ)として描画されるツリー、順序付け、またはトポロジは、プロットされたデータから推測されたものではなく、確立された参照を使用します。構造自体が結果である場合にのみ、構造を推測します。
1.7 主張あたり1つの数値。 定量的な主張(実行時間、精度、カウント)は、すべてのパネル、キャプション、アブストラクトにわたって正確に1つの標準的な値を持ちます。それが何を測定するかを定義し、その値をどこでも使用します。
§2 ラベルの経済性 — 下限と上限
図表はパターンを示します。キャプションがコンテキストを伝えます。著者ではなく、一般的な科学読者を対象にデザインします。
2.1 下限(削除不可)。 すべての個別のマーク、系列、グリフ、比較対象は、図表のみから識別可能でなければなりません。キャプションは_なぜ重要か_を説明し、_それが何か_を説明しません。ラベルは、削除した場合に読者が「それは何?」と尋ねるなら削除不可であり、「なぜそこにあるの?」という質問になる場合のみ削除可能です。比較対象のラベルは、「ベースライン」、「以前」のような裸の役割語ではなく、物の名前(「先行手法」、「共同トレーニングなし」)を付けます。一般的な科学者が解析できない用語は、一言の注釈を付けます。
2.2 上限。 パネルあたり:タイトル + 軸ラベル + 目盛ラベル + 系列識別(小規模多重の行ごとに1回ラベル付け) + 最大2~3の結果注釈。文字列をカウントします。軸/目盛を超えて6つ以上ある場合は、過剰です。上限は_ナラティブ_注釈(コールアウト、値ラベル、ブラケット)をカウントします。識別ラベルは予算ではなく下限です。
2.3 キャプションに移動: n=、固定されたもの、略語の展開、比較不可能な脚注、除外の理由、方法論的注意点。
2.4 タイトルは要点。 タイトルだけを見た読者は、そのパネルが何を示しているかを理解します。「遺伝子ドロップアウトにロバスト」は合格。「より少ない遺伝子」は不合格。テスト:冷たく読み上げてください。聞き手が「より少ない遺伝子_何_?」と尋ねる場合は、書き直します。1つのことを変化させる小規模多重の行の場合、パネルごとのタイトルを1つの行ヘッダーに置き換えます。
2.5 値オン・マークは見出し数字のみ — 読者が引用するであろう数字。それ以外はすべて軸から読み取ります。
2.6 疑わしい場合は、ラベルを削除して読み直します。 メッセージが残っている場合は、削除したままにします。
§3 軸、スケール、小規模多重
既存の軸に図表全体の設定と異なるフレームが必要な場合は、set_frame(ax, style=...)を呼び出します。
3.1 軸パディング。 軸の範囲は、あらゆる側でデータからマーカー半径1つ以上離します。マーカーとテキストはスパインに決して接触しません。プロット後にax.margins(0.04)を使用するか、注釈を超えて範囲を拡張します。
3.2 無駄な範囲には軸区切り。 データが軸の40%未満を占める場合は、軸を区切るか、データの下限から明確な非ゼロの目盛で開始します。軸区切りのギャップ内に参照線、しきい値、または注釈を決して描画しないでください。ギャップには座標がありません。
3.3 対数軸は人間が読める目盛に — 10²、10³、または 1k / 10k / 100k。生の指数は避けます。対数スケールの値軸に塗りつぶされた棒を決して描画しないでください(棒の長さは任意の下限に対する比率をエンコードします)。代わりに点と中央値の目盛を使用します。
3.4 小規模多重間で軸を共有。 小規模多重の行または列は、目盛ラベルを一度だけ(左端/下端のパネル)表示します。内部のパネルは目盛を保持しますが、ラベルは削除します。パネルがy軸を共有し、x変数のみが異なる場合は、それらを隣接するサブプロット(wspace≤0.06)としてレンダリングし、1つの行ヘッダータイトルを付けます。
3.5 ボックスを埋める。 パネルのデータエンベロープは、割り当てられた矩形の75%以上を占めます。パネルの自然なアスペクトがデッドバンドを残す場合は、グリッドを再形成します(行スパン、相補的なパネルのスタック)。パネルをパディングしないでください。
3.6 良さの方向。 高い/低い方が良いかが軸ラベルから明らかでない場合は、小さな直立したキュー(「高い = 良い」)をマージンに配置します。パネルの行ごとに1回、パネルごとには決して配置せず、キャプションのみにも決して配置しません。回転したテキストに埋め込まれた方向性グリフは、テキストとともに回転します。キューは直立に設定します。goodness_arrow(ax, ...)はこのキューを配置します。
3.7 物理的な幅。 300 dpiの単一列図表は、掲載先の2段組幅に収まります。スケマティックやラベルを追加しても、データパネルが以前よりも狭くなることはありません。
§4 色
4.1 スレッディング。 色がエンティティ(手法、特徴、条件)にバインドされたら、その正確な色を、そのエンティティを表すすべてのマーク(線、塗りつぶし、マーカー、テキスト、ヒートマップ行)に図表全体で再利用します。色_は_相互参照です。読者は凡例を2度参照する必要があってはいけません。
4.2 色相を制限。 データが必要とするのと同じ数の異なる色相のみを使用します。図表が焦点系列を他と比較する場合、焦点系列を視覚的に dominant(彩度が高く、より太いウェイト)にし、比較対象は視覚的ウェイトを低く(彩度を下げ、明るく、または細く)します。焦点色相は、同じ図表で使用されるカテゴリカルパレットのいずれの色相とも一致してはいけません。焦点系列は、そのマークがゼロ幅であるか、他と一致している場合でも、アウトライン、マーカー、または薄い色付きのバンドによって識別可能でなければなりません。focal_palette(...)を使用して、焦点色と比較色を順序付けられたラベルにバインドします。
4.3 階層的カテゴリ。 カテゴリがネストしている場合(グループ内のグループ)、外側のレベルが色相ファミリーを選択し、内側のレベルがその中からサンプリングします。
4.4 連続および発散。 一般的な連続値には知覚的に均一なシーケンシャルマップを使用します。順序ランクまたはサイズには単一色相のランプ。符号付き量には発散マップ — 常に意味論的に意味のあるゼロ(0、1.0、または中央値)を中心に配置し、データの中間点には決して配置しません。
4.5 CVD安全性。 二値または対立する区別に赤/緑のコントラストを決して頼りにしてはいけません。どの二値ペアも、2色覚シミュレーションで区別可能でなければなりません。エラー/異常/摂動マーク用に1つの警戒色相を予約し、データ系列の色として再利用しないでください。
4.6 2つのパレット、2つの凡例。 図表が2つのカテゴリカルカラーシステムを使用する場合、各凡例は、そのパレットが適用される最初のパネルの隣に配置します。
§5 タイポグラフィ
5.1 文タイトル。 パネルタイトルは、比較を平易な言葉で、標準ウェイト、左揃えで記述します。メトリック名は軸に、タイトルには記載しません。
5.2 役割マッピングされたサイズ階層。 図表は最大3つのフォントサイズを使用し、スペースではなく_役割_にマッピングします:タイトル/軸ラベル/系列識別はベースサイズ。凡例/注釈テキストは1段階下。目盛ラベルはさらに1段階下。パネル文字は唯一の例外(太字、大きめ)。ラベルがその役割のサイズで収まらない場合は、レイアウトを修正するかテキストを短縮します。中間サイズに手を伸ばさないでください。apply_figure_style(sizes=(8,7,6))で階層を設定します。1行の二次メタデータ行が必要な場合は、two_tier_label(name, meta)で2行テキストを作成します。
5.3 命名法。 科学慣例でイタリック体にする種、遺伝子、変数名はイタリック体にします。略語コードはそのルールを継承します。最初の出現時に一度展開します。
5.4 大きさの接尾辞。 大きなカウントにはk / M / B(4.2B、120 kb)を使用し、カンマ区切りの完全な数字は使用しません。
5.5 数値注釈。 マーク上の数値は、最大2有効数字を使用します。ただし、2桁に丸めると2つの異なる行が同じ値を出力する場合は、それらを区別する桁を表示します。塗りつぶされたマーク上のテキストは、≥4.5:1のコントラストを達成します。達成できない場合は、テキストをマークの外側に配置します。
5.6 内部コードなし。 軸ラベルは平易な言語の名前を使用します。コードベースの略語は、読みやすい名前の後の括弧内、またはキャプションにのみ表示します。比較系列は、それが_何であるか_でラベル付けし、役割語ではラベル付けしません。
5.7 パネル文字。 太字、左上、軸ボックスの外側。大文字小文字は対象掲載先の慣例に従います。panel_letter(ax, 'a', case=...)でどちらも処理します。
§6 チャートファミリーガイダンス(データ形状別)
6.1 カテゴリカル × 数値。 分布を示し、要約だけを示さないでください。チャートの選択はnに従います:nが小さい場合はジッター付きストリップと中央値の目盛。nが大きい場合は箱ひげ図またはバイオリンプロット。平均がメッセージの場合は、生データ点を重ねた棒グラフ、または区間付き棒グラフ。ジッター付きストリップ形式にはstrip_with_median(...)を、生データ点または区間付き棒グラフにはbar_with_points(...)を使用します。errorbar='ci95'区間は、平均のt分布95%信頼区間(半幅 t_{0.975,n−1}·s/√n)であり、nが小さい場合でも有効です。エラーバーと生データ点のオーバーレイは代替手段であり、両方を表示するのは通常冗長です。グループに存在しないカテゴリは、そのスロットにマーク(n.d.、—、またはハッチングされたゴースト)を付けます。空のスロットはゼロとして読み取られます。ゼロ値の棒は、ベースラインに可視のスタブまたはドットを取得します。
6.2 単一観測のカテゴリ。 意味論的ゼロまでの細いニュートラルなステム付きの塗りつぶされたドット(ロリポップ)。値ラベルはドットの隣に配置します。
グループ化されたプロットヘルパーは、提供されたすべてのグループ内で、空でなく、1次元で、有限な実数観測を必要とします。描画前に空のグループとNaN/Infを拒否します:明示的に除外を解決し、保持されたnを報告し、必要に応じて欠落カテゴリマーカーを個別に追加します。欠落した観測を黙って削除することはありません。除外された観測を含むマスクされた配列は、変換前に拒否されます。マスクされたエントリがない配列は有効のままです。要求されたSD/CI区間には、グループごとに少なくとも2つの観測が必要です。単一の観測の場合は、区間なしで点を使用します。ラベルとデータグループは整列している必要があります。strip_with_medianの場合、空でない色のシーケンスは循環します。Noneまたは空のシーケンスはデフォルトのグレーを使用します。空の棒色シーケンスはMatplotlibのデフォルトの棒色を使用します。空のfocal_paletteベースシーケンスはデフォルトの色サイクルを使用します。
6.3 連続系列。 平均(xごと)を線とマーカーで表示。個々のランは、その背後にある薄い半透明の線または点として表示します。各系列は、凡例ボックスよりも、線の右端に直接テキストでラベル付けすることを優先します。end_of_line_labels(...)はこれらのラベルを配置します。要約グリフ(ビンごとの平均/中央値)は、生の観測と間違えられない形状を使用し、系列間で同一であり、zオーダーで生データ点の下に描画されます。
end_of_line_labelsは、ラベルを追加する前に、系列/ラベルの数と、空でない一致するx/yの長さを検証します。エンドポイントは有限でなければなりません。内部のギャップは残すことができます。各インデックス付きシーケンスの最後にアクセスし、完全な系列をコピーしません。空でない色のシーケンスは循環します。Noneまたは空のシーケンスは、現在のデフォルトのテキスト色を使用します。panel_cropsの場合、パネル文字は一意でなければなりません。
6.4 共有サポート上の分布。 2つの分布が大きく重なる場合は、それらを共有x軸を持つ小さなパネルとしてスタックするか、リッジラインを使用します。分離が視覚的に明確な場合にのみオーバーレイします。
6.5 行列。 ヒートマップが読み取るのに十分小さい場合(<約200セル)、すべてのセルに値を印刷します。しきい値をカラーバーラベルに一度記載します。
6.6 埋め込み。 次元削減散布図(UMAP、t-SNE、PCA)は、目盛と目盛ラベルを削除します。小さな隅の矢印ペアが軸に名前を付けます。クラスターは、周囲の空白にあるテキストへの細いリーダー線でラベル付けされます。
6.7 ペアの予測と観測。 2つを同一のxと色を持つ隣接するトラックとしてスタックします。アライメントが比較を伝えます。
…
[以下、翻訳のため省略]