Erstellung von Diagrammen und Visualisierungen
Auf dieser Seite
Aktualisiert am 2. November 2026 basierend auf der OpenAI-Dokumentation: Das Tool Code Interpreter erfordert nun einen
container-Parameter (in allen Beispielen hinzugefügt), Texteingabeteile verwenden den Typinput_text, und die Websuche nutzt das Toolweb_search(web_search_previewist nun ein veraltetes Tool ohne Domänenfilter). Generierte Dateien werden mit den Funktionenfichiers_generesundtelechargeraus Lektion 10 abgerufen. An Dateien angehängte Nachrichten werden mit dem Zweckuser_datahochgeladen, was OpenAI für Modell-Eingaben empfiehlt (Dateieingaben). Quellen: Code Interpreter · Websuche.
Erstellung von Diagrammen und Visualisierungen
Ein von Code Interpreter erstelltes Diagramm ist kein generiertes Bild: Es handelt sich um die Darstellung eines tatsächlichen matplotlib-Skripts, das auf Ihren realen Daten ausgeführt wird. Diese Unterscheidung ist wichtig: Die Achsen sind genau, die Werte stimmen mit der Datei überein, und Sie können den Code anfordern, um ihn lokal nachzubilden.
Drei Bibliotheken existieren im Container nebeneinander, jede erfüllt einen anderen Zweck. matplotlib übernimmt alles, kann aber ausführlich sein. seaborn fügt eine statistische Ebene hinzu, die Verteilungen und Korrelationen in einer einzigen Zeile lesbar macht. plotly erzeugt interaktives HTML, am besten vorbehalten für Ergebnisse, die Sie mit der Maus erkunden werden. Benennen Sie in Ihrem Prompt diejenige aus, die Sie wünschen; ohne Anweisungen defaultet das Modell auf matplotlib.
Einfache Diagramme mit matplotlib
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-5.6-terra",
input="Erstellen Sie ein Balkendiagramm, das den monatlichen Umsatz zeigt: "
"Jan=120, Feb=98, Mär=145, Apr=167, Mai=189, Jun=210, "
"Jul=195, Aug=178, Sep=220, Okt=245, Nov=267, Dez=312. "
"Professioneller Stil, blaue Farben, Titel und Beschriftungen.",
tools=[{"type": "code_interpreter", "container": {"type": "auto"}}],
instructions="Verwenden Sie matplotlib mit einem professionellen Stil. "
"Serifenlose Schriftart, leichtes Raster, keine oberen oder rechten Kanten."
)
# Abrufen des generierten Bildes
for ann in fichiers_generes(response):
telecharger(client, ann, "monthly_sales.png")
Diagramme aus Dateidaten
Dies ist der häufigste Anwendungsfall, und hier ist der Nutzen am klarsten: Sie laden die Datei hoch, beschreiben das gewünschte Diagramm, und das Modell übernimmt das Lesen, das Datentypen der Spalten und das Plotten. Keine manuellen Vorbereitungsschritte, und vor allem keine manuelle Transkription von Zahlen – also keine Fehler durch Kopieren und Einfügen.
with open("team_performance.csv", "rb") as f:
file_obj = client.files.create(file=f, purpose="user_data")
response = client.responses.create(
model="gpt-5.6-terra",
input=[{
"role": "user",
"content": [
{"type": "input_text", "text": (
"Erstellen Sie aus dieser Datei ein Dashboard mit 4 Diagrammen: "
"1. Entwicklung des monatlichen Umsatzes (Liniendiagramm) "
"2. Aufschlüsselung nach Produktkategorie (Kuchendiagramm) "
"3. Top 10 Kunden nach Umsatz (horizontales Balkendiagramm) "
"4. Korrelation zwischen Menge und Betrag (Streudiagramm) "
"Ordnen Sie die 4 Diagramme in einem 2x2-Raster an."
)},
{"type": "input_file", "file_id": file_obj.id}
]
}],
tools=[{"type": "code_interpreter", "container": {"type": "auto"}}],
instructions="Erstellen Sie eine matplotlib-Figur mit 4 Teilplots. "
"Verwenden Sie eine konsistente Farbpalette. "
"Auflösung 1920x1080, DPI 150. "
"Exportieren Sie als hochwertige PNG-Datei."
)
Statistische Visualisierungen mit seaborn
seaborn glänzt, wenn die Frage eine Verteilung oder ein Zusammenhang betrifft, anstatt eine Reihe von Werten. Ein Boxplot nach Kategorie oder eine Korrelationsmatrix offenbart auf einen Blick, was eine Tabelle von Zahlen erst nach sorgfältiger Lektüre zeigt – und genau das sollte ein Diagramm tun.
response = client.responses.create(
model="gpt-5.6-terra",
input=[{
"role": "user",
"content": [
{"type": "input_text", "text": (
"Statistische Visualisierung dieser Daten: "
"1. Heatmap der Korrelationsmatrix "
"2. Verteilung jeder numerischen Variable (Histogramme + KDE) "
"3. Boxplots nach Kategorie zur Identifizierung von Ausreißern "
"4. Pairplot der 5 Hauptvariablen"
)},
{"type": "input_file", "file_id": file_obj.id}
]
}],
tools=[{"type": "code_interpreter", "container": {"type": "auto"}}],
instructions="Verwenden Sie seaborn mit dem 'whitegrid'-Thema. "
"Beschriften Sie Werte in der Heatmap. "
"Verwenden Sie die 'coolwarm'-Palette für Korrelationen."
)
Interaktive Diagramme mit plotly
plotly verändert die Natur des Ergebnisses: Anstatt eines statischen Bildes erhalten Sie eine eigenständige HTML-Datei, in der Sie zoomen, mit der Maus darüberfahren und filtern können. Es ist die richtige Wahl für ein Dashboard, das jemand erkunden wird, aber die falsche Wahl für eine Abbildung, die für ein gedrucktes Dokument oder eine E-Mail bestimmt ist.
response = client.responses.create(
model="gpt-5.6-terra",
input=[{
"role": "user",
"content": [
{"type": "input_text", "text": (
"Erstellen Sie ein interaktives plotly-Diagramm, das die Umsatzentwicklung zeigt mit: "
"- Zoom und Auswahl des Datumsbereichs "
"- Tooltips beim Überfahren mit Details "
"- Schaltflächen zum Filtern nach Kategorie "
"- Export als eigenständige HTML-Datei"
)},
{"type": "input_file", "file_id": file_obj.id}
]
}],
tools=[{"type": "code_interpreter", "container": {"type": "auto"}}]
)
# Abrufen der interaktiven HTML-Datei
for ann in fichiers_generes(response):
if ann.filename.endswith(".html"):
telecharger(client, ann, "interactive_dashboard.html")
Erweiterte Anpassung
Unternehmensstil-Leitfaden
Ein standardmäßig generiertes Diagramm ist sofort erkennbar und wirkt in einem unternehmerischen Dokument amateurhaft. Das Übergeben Ihrer Farben, Schriftarten und Konventionen in instructions reicht aus, um konsistente Abbildungen von einem Bericht zum nächsten zu erzeugen – und da diese Anweisungen wiederverwendbar sind, müssen Sie die Anstrengung nur einmal unternehmen.
STYLE_GUIDE = """
Visualisierungsregeln:
- Primärfarbe: #1E3A5F (Dunkelblau)
- Sekundärfarbe: #E74C3C (Rot)
- Akzentfarbe: #F39C12 (Orange)
- Hintergrund: Weiß (#FFFFFF)
- Schriftart: serifenlos
- Keine Ränder um Diagramme
- Leichtes graues Raster (#E0E0E0)
- Fett gedruckter Titel, Größe 14
- Achsenbeschriftungen Größe 11
- Legende unten rechts
- Immer Datenquelle unten links angeben
- Minimale Auflösung: 1200x800 Pixel
"""
response = client.responses.create(
model="gpt-5.6-terra",
input=[{
"role": "user",
"content": [
{"type": "input_text", "text": "Erstellen Sie ein Diagramm zur Entwicklung des Quartalsumsatzes"},
{"type": "input_file", "file_id": file_obj.id}
]
}],
tools=[{"type": "code_interpreter", "container": {"type": "auto"}}],
instructions=STYLE_GUIDE
)
Muster: Generator für visuelle Berichte
def generate_visual_report(
file_path: str,
report_title: str,
sections: list[str]
) -> list[str]:
"""Generieren Sie einen Bericht mit Diagrammen aus Daten."""
with open(file_path, "rb") as f:
file_obj = client.files.create(file=f, purpose="user_data")
images = []
for i, section in enumerate(sections):
response = client.responses.create(
model="gpt-5.6-terra",
input=[{
"role": "user",
"content": [
{"type": "input_text", "text": f"Abschnitt {i+1} des Berichts '{report_title}': {section}"},
{"type": "input_file", "file_id": file_obj.id}
]
}],
tools=[{"type": "code_interpreter", "container": {"type": "auto"}}],
instructions=(
"Erstellen Sie ein professionelles Diagramm für diesen Abschnitt. "
"Beziehen Sie einen beschreibenden Titel und relevante Anmerkungen mit. "
"Exportieren Sie als PNG 1200x800 DPI 150."
)
)
for ann in fichiers_generes(response):
name = f"report_section_{i+1}.png"
telecharger(client, ann, name)
images.append(name)
return images
# Nutzung
charts = generate_visual_report(
"annual_sales.csv",
"Umsatzbericht 2025",
[
"Entwicklung des monatlichen Umsatzes mit Trend",
"Umsatz-Aufschlüsselung nach Region (Karte oder Baumkarte)",
"Leistungsvergleich nach Vertriebsmitarbeiter (gruppierte Balken)",
"Prognosen für die nächsten 3 Monate (mit Konfidenzintervall)"
]
)
Tipps für hochwertige Diagramme
quality_instructions = """
Für jedes Diagramm:
- Wählen Sie den Diagrammtyp, der am besten zu den Daten passt
- Verwenden Sie zugängliche Farben (ausreichender Kontrast)
- Vermeiden Sie 3D-Diagramme, es sei denn, dies wurde explizit angefordert
- Beschränken Sie Kuchendiagramme auf maximal 6 Kategorien
- Fügen Sie Anmerkungen für wichtige Punkte hinzu
- Verwenden Sie angemessene Skalen (keine abgeschnittenen Nullen, es sei denn, dies ist gerechtfertigt)
- Exportieren Sie immer in hoher Auflösung
"""
Wichtige Erkenntnisse
- matplotlib, seaborn und plotly sind im Sandbox-Container verfügbar
- Geben Sie Ihre Daten über
input_filefür Diagramme auf Basis echter Dateien an - Definieren Sie einen Stil-Leitfaden in
instructionsfür Konsistenz - Rufen Sie generierte Bilder aus
container_file_citation-Anmerkungen ab und laden Sie sie dann über die Container-API herunter (Funktionenfichiers_generesundtelechargeraus Lektion 10) - Mit plotly können Sie interaktive HTML-Dashboards generieren