Zum Hauptinhalt springen
Lektion 13 von 20 · API-Tools: Suche, Dateien und Code Interpreter

Erstellung von Diagrammen und Visualisierungen

Lektion 13 von 20 Aktualisiert am 2. November 2026 Entwickler
Auf dieser Seite
  1. Erstellung von Diagrammen und Visualisierungen
  2. Einfache Diagramme mit matplotlib
  3. Diagramme aus Dateidaten
  4. Statistische Visualisierungen mit seaborn
  5. Interaktive Diagramme mit plotly
  6. Erweiterte Anpassung
  7. Muster: Generator für visuelle Berichte
  8. Tipps für hochwertige Diagramme
  9. Wichtige Erkenntnisse

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 Typ input_text, und die Websuche nutzt das Tool web_search (web_search_preview ist nun ein veraltetes Tool ohne Domänenfilter). Generierte Dateien werden mit den Funktionen fichiers_generes und telecharger aus Lektion 10 abgerufen. An Dateien angehängte Nachrichten werden mit dem Zweck user_data hochgeladen, 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_file für Diagramme auf Basis echter Dateien an
  • Definieren Sie einen Stil-Leitfaden in instructions für Konsistenz
  • Rufen Sie generierte Bilder aus container_file_citation-Anmerkungen ab und laden Sie sie dann über die Container-API herunter (Funktionen fichiers_generes und telecharger aus Lektion 10)
  • Mit plotly können Sie interaktive HTML-Dashboards generieren