CommunityBildgithub.com

Paper Figures (Diagramme für wissenschaftliche Arbeiten)

Entwerfen, zeichnen und überprüfen von Abbildungen für Sicherheits-/System-Papiere (IEEE S&P, USENIX Security, CCS, NDSS, Zeitschriften, IEEE S&P Magazine) im Stil starker Top-4-Papiere. Verwenden für 画图/作图/图表设计/论文配图, Auswahl der richtigen Darstellungsform für eine Aussage, drucktaugliche Gestaltung, Bildunterschriften, die die Kernaussage nennen, oder Konvertierung einer matplotlib-Abbildung in ein druckreifes Vektor-PDF.

Was ist Paper Figures (Diagramme für wissenschaftliche Arbeiten)?

Paper Figures ist eine umfassende Fähigkeit für KI-Agenten, die in den Bereichen Sicherheits- und Systemforschung tätig sind. Sie bietet einen vollständigen, von Experten kuratierten Workflow für die Erstellung von Publikationsabbildungen, die den strengen Standards der führenden Konferenzen (IEEE S&P, USENIX Security, CCS, NDSS) und Zeitschriften entsprechen. Die Fähigkeit basiert auf dem Prinzip „Eine Abbildung = eine Behauptung“ und stellt sicher, dass jede Abbildung eine klare, in fünf Sekunden erfassbare Aussage vermittelt. Sie enthält eine Reihe von Referenzdateien (z. B. Kodierungsleitfaden, Stilspezifikation, Barrierefreiheit), wiederverwendbare Python-Skripte (z. B. figure_style.py, check_figure.py) und lauffähige Beispiele mit synthetischen Daten. Der Workflow führt die Benutzer Schritt für Schritt durch den gesamten Prozess: von der Formulierung der Behauptung über die Auswahl der richtigen Darstellungsform, das Zeichnen mit einem gemeinsamen, drucktauglichen Stil bis hin zur Überprüfung und dem Export als Vektor-PDF. Die Fähigkeit setzt durchsetzbare Regeln durch, wie z. B. minimale Schriftgrößen von 7 pt, die Verwendung der Okabe-Ito-Farbpalette, den Verzicht auf irreführende Achsen und die Reproduzierbarkeit aller Abbildungen durch die im Repository enthaltenen Skripte.

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

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Paper Figures (Diagramme für wissenschaftliche Arbeiten)?

Eine Abbildung ist ein sichtbar gemachtes Argument. Sie hat ihren Platz verdient, wenn ein Leser, der sie fünf Sekunden lang betrachtet, bevor er die Bildunterschrift liest, die von ihr aufgestellte Behauptung nennen kann. Alles in dieser Fähigkeit dient diesem Test.

Der von ihr kodierte Stil ist der, den starke Papiere auf der S&P, USENIX Security, CCS und NDSS gemeinsam haben: kleine, vektorbasierte, zweispaltige Abbildungen; wenige Darstellungselemente; direkte Beschriftungen; drucktaugliche Farben; Bildunterschriften, die die Kernaussage nennen, anstatt die Achsen zu beschreiben.

Kernprinzip

Eine Abbildung = eine Behauptung = eine Botschaft in der Bildunterschrift.

Wenn zwei Behauptungen gezeigt werden müssen, zeichnen Sie zwei Panels oder zwei Abbildungen. Eine Abbildung, die drei Dinge zeigt, wird als keine von ihnen gelesen.

Unverhandelbare Regeln

  1. Eine Botschaft pro Abbildung. Der erste Satz der Bildunterschrift nennt sie; die Grafik stützt sie.
  2. In Druckgröße zeichnen. Eine einspaltige Abbildung ist 3,5 Zoll breit (IEEE), 3,33 Zoll (ACM sigconf), 3,4 Zoll (USENIX). Niemals groß zeichnen und in LaTeX verkleinern: Die Schriften schrumpfen unter die 7-PT-Untergrenze.
  3. Vektorausgabe (.pdf aus matplotlib) für alles mit Text oder Linien. 300 dpi Raster nur für Fotografien und Screenshots.
  4. Schriften ≥ 7 PT in Druckgröße; Achsenbeschriftungen 8 PT, Tick-Beschriftungen 7 PT.
  5. Drucktaugliche Farbe: Okabe-Ito-Palette, nichts wird nur durch Farbe unterschieden, und die Abbildung muss in Graustufen überleben (scripts/check_figure.py --preview).
  6. Keine irreführenden Achsen: Balkendiagramme beginnen bei Null; logarithmische Skalen sind beschriftet; keine gestauchte y-Achse, um einen Unterschied zu dramatisieren; keine doppelten y-Achsen ohne expliziten, genannten Grund.
  7. Unsicherheit zeigen, wenn die Behauptung quantitativ ist: KI-Bänder, Fehlerbalken oder n in der Bildunterschrift. Eine Punktschätzung ohne Nenner ist kein Ergebnis.
  8. Die Bildunterschrift sagt, was zu beachten ist, dann die Einheiten, dann n. Sie ist keine Liste von Farben.
  9. Kein Chartjunk: kein 3-D, keine Schatten, keine Farbverläufe als Dekoration, keine Regenbogenkarten, keine Hintergrundfüllungen, keine Gitterlinien, die mit den Daten konkurrieren.
  10. Reproduzierbar: Das Skript, das die Abbildung generiert hat, befindet sich neben ihr im Repository, zusammen mit der Datendatei oder einem Seed. Eine Abbildung, die niemand neu generieren kann, ist eine Verbindlichkeit bei der druckreifen Version.

Schritt 0 – Entscheiden Sie zuerst die Behauptung

Schreiben Sie einen Satz, in Worten, den die Abbildung selbsterklärend machen muss:

"Öffentlicher Exploit-Code erscheint jetzt schneller als Advisories: Das 30-Tage-Artifact-to-Advisory-Verhältnis stieg von 0,63 auf 1,83 über vier Epochen hinweg."

Wenn Sie diesen Satz nicht ohne „und“ schreiben können, haben Sie zwei Abbildungen.

Füllen Sie templates/figure-brief.md aus, bevor Sie matplotlib berühren. Das dauert zwei Minuten und verhindert die häufigste Nacharbeit: eine schöne Abbildung, die die falsche Größe zeigt.

Schritt 1 – Wählen Sie die Kodierung aus der Behauptung

Lesen Sie references/encoding-guide.md. Die Kurzfassung:

BehauptungstypKodierungVermeiden
Verteilung / wie schnellCDF (Stufen), Violine, Box, StripBalken der Mittelwerte ohne Streuung
Gepaarter VergleichHantel, Steigung, gepaarte Punktezwei schwebende Balken
Zusammensetzung im ZeitverlaufGestapelte Fläche, kleine MultiplesTorte, 3-D-Torte
RangfolgeSortierte horizontale Balken, Punktdiagrammunsortierte Balken, Regenbogen
Zwei-Variablen-AbwägungStreuung + Pareto-FrontBlase mit unlesbaren Größen
Matrix / AbdeckungHeatmap mit einer wahrnehmungsuniformen Karte, Werte in ZellenRegenbogen-Heatmap ohne Werte
Prozess / ZeitleisteSchwimmbahn, Zeitleiste, Sequenzdiagrammeine Tabelle mit Daten in Prosa
Taxonomie / EntscheidungBeschrifteter Baum, Matrix mit gefüllten Zellenverschachtelter Aufzählungstext

Schritt 2 – Zeichnen Sie mit dem gemeinsamen Stil

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

apply_style()                       # 8 PT Basis, Okabe-Ito, drucktaugliche rcParams
fig, ax = new_fig(3.5, 2.3)         # Einzelspalte, korrektes Seitenverhältnis
ax.plot(x, y, color=SERIES[0], label="Pre-AI")
save(fig, "figs/fig1_cdf")          # schreibt .pdf (für LaTeX) + .png (Vorschau)

Passen Sie den Stil global an, niemals pro Abbildung: Zwei Abbildungen in einem Papier mit unterschiedlichen Schriftarten oder Linienstärken lesen sich wie zwei verschiedene Papiere.

references/style-spec.md listet jede Einstellung auf und warum sie so gesetzt ist.

Schritt 3 – Beschriften Sie direkt, Bildunterschrift zuletzt

  • Setzen Sie den Seriennamen am Ende ihrer Linie oder im Plot, anstatt in einer Legendenbox. Verwenden Sie eine Legende nur, wenn direkte Beschriftungen kollidieren würden (siehe examples/fig01_cdf.png).
  • Panel-Beschriftungen A, B, C in Fettschrift oben links, auf die in der Bildunterschrift Bezug genommen wird.
  • Achsenbeschriftungen: Menge + Einheit + Skala (Tage seit Offenlegung (logarithmische Skala)).
  • Schreiben Sie dann die Bildunterschrift mit references/captions.md: Kernaussage → was die Achsen zeigen → Einheiten/n/KI → der eine Vorbehalt, den ein Leser nicht übersehen darf.

Schritt 4 – Machen Sie es drucktauglich

  • Palette: SERIES in scripts/figure_style.py (Okabe-Ito). Sequenzielle Daten: cividis, niemals jet. Divergierend: RdBu_r, nur um eine aussagekräftige Null herum.
  • Kodieren Sie auch durch Form: Marker und Linienstile variieren mit der Serie, sodass die Abbildung den Graustufendruck und farbenblinde Gutachter übersteht.
  • Führen Sie den Prüfer aus:
python scripts/check_figure.py figs/fig1_cdf.png --preview

Er meldet Größe/dpi, die chromatische Palette, die Graustufen- und Deuteranopie-Trennung und schreibt fig1_cdf_gray.png / fig1_cdf_cvd.png. Sehen Sie sich beide an.

references/accessibility.md deckt die Details ab (Kontrast, CVD, Alternativtext).

Schritt 5 – Exportieren und einbinden

  • Vektor-PDF mit eingebetteten TrueType-Schriften exportieren (pdf.fonttype = 42, bereits gesetzt).
  • In der Druckbreite einbinden: \includegraphics[width=\columnwidth]{figs/fig1_cdf.pdf}.
  • Überprüfen Sie das kompilierte PDF bei 100 %: kein Text unter 7 PT, keine abgeschnittenen Beschriftungen, keine Abbildung höher als eine halbe Spalte, es sei denn, es ist die konzeptionelle Hauptabbildung des Papiers.
  • references/production.md behandelt die LaTeX-Einbindung, Schrifteinbettung und Dateianordnung.

Schritt 6 – Überprüfen Sie wie ein Gutachter

  1. Fünf-Sekunden-Test: Zeigen Sie die Abbildung allein jemandem; kann er die Behauptung nennen?
  2. Bildunterschriften-Test: Der erste Satz sollte die Behauptung sein, nicht „Abbildung 3 zeigt…“.
  3. Graustufentest: Beide Vorschauen werden korrekt gelesen.
  4. Zoom-Test: Bei 100 % des kompilierten PDFs ist jedes Label lesbar.
  5. Integritätstest: Die Zahlen in der Abbildung stimmen mit der Tabelle und dem Text überein; die Achse ist nicht gestaucht; Fehlerbalken sind in der Bildunterschrift definiert.
  6. Wiederverwendungstest: Löschen Sie das PNG; generiert das Skript es bytegenau neu? Es sollte.

Budget für Darstellungselemente

VeranstaltungsklasseDarstellungselemente insgesamtHinweise
Top-4-Konferenz6–10Eine konzeptionelle Abbildung, eine Zeitleiste, Ergebnistabellen; auf jedes Element wird im Text Bezug genommen
Magazin4–6Eine Botschaft pro Element; Seitenleisten anstelle von Anhängen
Zeitschrift8–12Mehr Platz, gleiche Regeln

Wenn auf eine Abbildung nicht mit einer Behauptung im Text Bezug genommen wird („Abbildung 5 zeigt, dass X“), entfernen Sie sie oder schreiben Sie den Satz neu.

Anti-Patterns

Anti-PatternWarum es scheitert
Regenbogen/Jet-FarbkarteNicht wahrnehmungsgeordnet; irreführende Werte; in Graustufen unlesbar
3-D- oder schattierte Balken/TortenDekoration, die den Vergleich verzerrt
Torte mit >3 SegmentenMenschen vergleichen Winkel schlecht; verwenden Sie sortierte Balken
Doppelte y-AchseLädt zu einer Korrelationsbehauptung ein, die die Daten nicht stützen; verwenden Sie zwei Panels
Gestaudhte y-Achse bei BalkenÜbertreibt Unterschiede; ein Gutachter wird es bemerken
Legendenbox mit 6 EinträgenErzwingt Farbzuordnung; verwenden Sie direkte Beschriftungen oder kleine Multiples
Winziger, in LaTeX skalierter TextSchriften fallen unter 7 PT; die Abbildung wird zu grauem Rauschen
Bildunterschrift, die Farben auflistet„Die blaue Linie zeigt…“ sagt dem Leser nichts, was er nicht sehen kann
Screenshot einer TabelleNicht vektorbasiert, nicht bearbeitbar, nicht barrierefrei
Abbildung, die eine Tabelle wiederholtVerschwendung eines Darstellungselements; behalten Sie das, das die Behauptung stützt
Unbeschriftete logarithmische AchseDer Leser kann Steigungen nicht über Größenordnungen vergleichen
Fehlende n / FehlerbalkenEine Punktschätzung ohne Unsicherheit ist kein Beweis

Ressourcenkarte

DateiVerwendung
references/venue-figure-profiles.mdWas die Top-4-Veranstaltungen erwarten, Spaltenbreiten, Bildunterschriften-/Platzierungsregeln
references/encoding-guide.mdBehauptung → Diagrammzuordnung, logarithmische Skalen, Unsicherheit, wann eine Tabelle gewinnt
references/style-spec.mdJede matplotlib-Einstellung mit ihrem Grund; Palette-Hex-Codes
references/captions.mdBildunterschriften-Formel und Vorher/Nachher-Beispiele
references/accessibility.mdFarbenblind- und Graustufensicherheit, Kontrast, Alternativtext
references/production.mdExport, LaTeX-Einbindung, Schriften, Dateianordnung, Reproduzierbarkeit
references/anti-patterns.mdWas zu entfernen ist, mit dem Beispiel, das es zeigt
scripts/figure_style.pyrcParams, Okabe-Ito-Palette, new_fig, save, panel_label
scripts/check_figure.pyGrößen-/dpi-Prüfung, Graustufen- und Deuteranopie-Vorschauen, Palettenbericht
scripts/make_examples.pyGeneriert jedes Beispielbild (synthetische Daten)
examples/Referenzbilder: wie gute Beispiele aussehen, plus ein Schlecht-gegen-Gut-Paar
templates/figure-brief.mdEinseitige Kurzbeschreibung vor dem Zeichnen

Verwandte Skills