2026 Datenvisualisierung: Liefer-Entscheidungsmatrix Matplotlib vs. Plotly — PNG-Export (DPI, sRGB) & Remote-Mac-M4-Batch-Abnahme

Zielgruppe: Data-Science- und Design-Ops-Teams, die Diagramme als PNG in Decks, Notion oder CMS liefern — nicht nur als HTML. Der Streitpunkt ist wer Pixel, Alpha und Farbintent definiert. Dieser Artikel liefert eine Liefermatrix 2026 für Matplotlib und Plotly, kopierbare Exportparameter (dpi, figsize, transparent, MPLBACKEND, write_image mit Kaleido), eine kompakte sRGB-Abnahme und einen Stapelpfad auf Remote Mac M4 mit QA-Gates.

Inhalt

Ergänzende Design- und PNG-Leitfäden im deutschsprachigen Blog: sRGB vs. Display P3, ICC-Metadaten & verlustfreies Rekomprimieren, Design-PNG-Parameter-Workflow, 4K-PNG-Batch auf M4, PNG-QA-Batch. Startseite und Technik-Insights sind ohne Login erreichbar.

Typische Lieferrisiken

  1. Zoll mal dpi unklar: Ohne feste Kombination aus figsize und dpi weichen Pixelmaße vom Slide-Master ab; bbox_inches="tight" beschneidet Labels.
  2. Plotly ohne fixe Box: Fehlende width/height und wechselnde kaleido-Versionen ändern Kanten und Textlayout.
  3. Farbintent: Weder Matplotlib noch Plotly ersetzen ein Farbmanagement-Runbook — sRGB muss dokumentiert und visuell geprüft werden.

Entscheidungsmatrix: Matplotlib vs. Plotly (PNG)

Kriterium Matplotlib Plotly
Headless-Batch Sehr gutMPLBACKEND=Agg oder matplotlib.use("Agg") vor pyplot Sehr gut — Extra kaleido; fig.write_image("out.png")
Pixelmodell Zoll × dpi auf savefig; Ausgabe mit sips -g pixelWidth messen Explizite width/height in px plus scale für Retina
Transparenz transparent=True, facecolor="none"; Fringes auf #000 prüfen paper_bgcolor/plot_bgcolor rgba(0,0,0,0); Kaleido auf Platten testen
Typisches Risiko Schriften, enge bbox, unterschiedliche Font-Caches zwischen Laptops Kaleido-Drift, schwere WebGL-Spuren als große Raster-PNG

Exportparameter (kopierbar)

Auf dem Remote Mac M4 immer denselben Shell-Benutzer wie LaunchAgent oder CI nutzen, damit Schrift-Caches stabil bleiben. Hinweis Plotly: Auf dem Figure-Objekt heißt der Rasterpfad write_image; format="png" setzen (oder Dateiendung .png) — das entspricht dem gängigen „PNG schreiben“-Schritt neben Browser-Export.

Matplotlib (Agg, dpi, transparent)

Faustregel: Pixelbreite ≈ figsize[0] * dpi, sofern kein aggressives Tight-Cropping die Ränder frisst.
export MPLBACKEND=Agg
python3 <<'PY'
import matplotlib; matplotlib.use("Agg")
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(10, 5.625), layout="constrained")
ax.plot([0, 1], [0, 1])
fig.savefig("out/m.png", dpi=300, transparent=True,
            facecolor="none", edgecolor="none",
            bbox_inches="tight", pad_inches=0.05)
PY
  • dpi: 144–300 für Präsentationen; 300+ wenn Druck-PDFs skalieren.
  • figsize: Zoll als Vertrag — pro Markenleitfaden eine dpi-Stufe dokumentieren.
  • Optional: mplcairo prüfen, wenn Subpixel-Text kritisch ist.

Plotly (Kaleido, write_image)

import plotly.graph_objects as go
fig = go.Figure(data=go.Scatter(x=[0, 1], y=[0, 1]))
fig.update_layout(template="plotly_white",
    paper_bgcolor="rgba(0,0,0,0)", plot_bgcolor="rgba(0,0,0,0)")
fig.write_image("out/p.png", format="png",
    width=1920, height=1080, scale=2, engine="kaleido")
  • scale: 1 für echtes 1×-Web; 2 wenn Downstream doppelte Raster erwartet.
  • Versionen pinnen: plotly und kaleido in Lockfile — Upgrades verschieben Bounds.

sRGB und minimale Abnahme

Beide Stacks liefern keine „ICC-Garantie“ ohne Ihre Pipeline. Für Web- und Deck-Lieferung sRGB dokumentieren und wie bei Figma-Exports gegen Platten halten; Details in den verlinkten PNG-Artikeln. Kurzmatrix:

Check Aktion Pass
Intent README: „Lieferung sRGB“ vs. „P3 nur intern“ Ticket-Sprache = Design-PNG-Workflow
Hintergrund PNG auf #FFFFFF und #0B0B0B in Safari und Chrome Keine Überraschungs-Gamma-Sprünge
Alpha 400 % Zoom an Legendenkanten Keine grauen Fringes

Remote Mac M4: Stapelpfad & Abnahme

Ordnerdisziplin (lokal auf SSD, nicht iCloud-Watch): ~/png_jobs/viz_export/inbox/ Roh-Exporte; work/ optional zusammensetzen; out/YYYY-MM-DD/ freigegeben inkl. Manifest; log/export.jsonl je Datei Tool, Version, dpi oder scale, sha256.

Fünf Umsetzschritte: (1) Backend und Versionen einfrieren. (2) Matrix-Parameter setzen und ein Golden-File erzeugen. (3) In inbox schreiben. (4) Gates unten ausführen. (5) Passende Dateien mit Manifest nach out/ verschieben.

# Gate Tool
1 Breite/Höhe exakt laut Spec sips -g pixelWidth -g pixelHeight oder Pillow size
2 Byte min/max gegen leere Render stat -f%z auf macOS
3 Kein dpi-/scale-Drift Manifest vs. Lockfile
4 Textspot in Preview und Zieldeck 100 % Zoom
5 Deterministischer Re-Run Gleicher Commit und Fonts → gleicher sha256

Zahlen & Fakten zum Mitnehmen: (A) Viele Decks erwarten 1920×1080 oder 3840×2160 — bei Plotly scale=2 explizit gegenrechnen. (B) dpi=300 mit 10 Zoll Breite liefert grob 3000 px — vor CMS-Upload prüfen. (C) JSONL-Zeilen pro PNG verkürzen Postmortems nach Kaleido-Updates.

Fazit & nächste Schritte

Matplotlib Agg + savefig und Plotly Kaleido + write_image liefern starke PNGs, wenn Backends und Versionen eingefroren sind und die Größe entweder als Zoll × dpi oder Px × scale eindeutig ist. Kombinieren Sie das mit sRGB-Platten, Alpha-Checks und dem out/-Baum auf einem gemieteten Remote Mac M4, damit nächtliche Diagramm-Batches nicht vom Laptop-Schlaf abhängen.

Öffentliche Einstiege ohne Login: MacPng-Startseite, Mieten & Kaufen, Preise, Hilfe inkl. SSH/VNC. Weitere Artikel im Technik-Insights-Blog.

Wählen Sie Mac-Knoten & Zugriff

Matplotlib- und Plotly-PNGs auf Remote Mac M4 stapeln

Kaleido- und Agg-Jobs auf dediziertem Apple Silicon ausführen, Schriften pinnen und nur manifestgeprüfte PNGs promoten — ideal für nächtliche Reports und große Dashboard-Snapshots.

Startseite Jetzt mieten Preise & Knoten Hilfe & SSH/VNC
Remote Mac M4 · Daten-PNG Batch Matplotlib & Plotly
Jetzt mieten