TikZ, PGFPlots und technische Grafiken
TikZ erstellt Diagramme, Ablaufpläne und geometrische Zeichnungen; PGFPlots baut auf TikZ auf und erzeugt Achsen und Datengrafiken. Beide liefern skalierbare Vektorgrafiken, deren Schrift und Notation zum Dokument passen können.
EasyLaTeX-Compilereinstellung: pdfLaTeX mit article, T1-Schriftkodierung, Latin Modern und babel mit ngerman für deutsche Texte. Laden Sie tikz für Zeichnungen oder pgfplots für Datengrafiken. Komplexe Abbildungen verlängern die Kompilierzeit.
Wann mit Code zeichnen?
| Bedarf | Geeigneter Ansatz |
|---|---|
| Fotos, Scans, Bildschirmaufnahmen | Vorhandenes Bild einfügen |
| Ablaufpläne, Strukturen, Geometrie | TikZ |
| Funktionen, Messungen, Fehlerbalken | PGFPlots |
| Komplexe Illustrationen oder vorhandene Spezialdateien | Im Zeichenprogramm PDF exportieren; SVG vor dem Einfügen in PDF oder ein geeignetes Rasterbild umwandeln |
Codebasierte Zeichnungen bieten Reproduzierbarkeit, Versionskontrolle und einheitliche Schriften. Wenn ein Spezialwerkzeug besser zur Abbildung passt, verwenden Sie es und importieren Sie ein stabiles Ausgabeformat.
Eine minimale TikZ-Zeichnung
Laden Sie TikZ in der Präambel:
\usepackage{tikz}Zeichnen Sie Achsen und eine Strecke:
\begin{tikzpicture} \draw[->] (0,0) -- (4,0) node[right] {$x$}; \draw[->] (0,0) -- (0,3) node[above] {$y$}; \draw[blue,thick] (0,0) -- (3,2);\end{tikzpicture}Bei gewöhnlichen kartesischen Koordinaten verwenden die Standardachsen Einheiten von 1 cm. \draw erzeugt Pfade, eckige Klammern setzen Stile und node ergänzt Text.
Knoten und Pfeile
Definieren Sie wiederverwendbare Stile:
\begin{tikzpicture}[ box/.style={draw, rounded corners, minimum width=2.5cm, minimum height=8mm}, arrow/.style={->, thick}] \node[box] (input) {Eingabedaten}; \node[box, right=1.5cm of input] (process) {Verarbeitung}; \node[box, right=1.5cm of process] (output) {Ausgabe}; \draw[arrow] (input) -- (process); \draw[arrow] (process) -- (output);\end{tikzpicture}Die Syntax right=... of ... benötigt die Bibliothek positioning:
\usetikzlibrary{positioning}Gemeinsame Stile halten Zeichnungen konsistent. Kürzen Sie lange Beschriftungen oder setzen Sie text width, damit Knoten nicht überlappen.
Ein minimales PGFPlots-Diagramm
Laden Sie PGFPlots und setzen Sie die Kompatibilitätsstufe:
\usepackage{pgfplots}\pgfplotsset{compat=1.18}Zeichnen Sie direkt angegebene Koordinaten:
\begin{tikzpicture} \begin{axis}[ xlabel={Zeit (s)}, ylabel={Geschwindigkeit (m/s)}, grid=major ] \addplot coordinates {(0,0) (1,1) (2,4) (3,9)}; \end{axis}\end{tikzpicture}axis verwaltet Achsen, Teilstriche, Beschriftungen und Gitter; \addplot liefert eine Datenreihe. Benennen Sie Größen und Einheiten eindeutig und unterscheiden Sie Reihen nicht allein durch Farbe.
Daten aus einer Datei lesen
Erstellen Sie im Projekt data/velocity.csv:
time,velocity0,01,12,43,9Lesen Sie anschließend die benannten Spalten:
\addplot table [x=time, y=velocity, col sep=comma] {data/velocity.csv};Die Trennung von Daten und Zeichencode erleichtert Aktualisierung und Prüfung. Die Spaltennamen müssen zu den Angaben unter x= und y= passen.
Grafik ins Dokument einfügen
Umschließen Sie die Zeichnung mit figure, um Beschriftung, Label und Verweis zu erhalten:
\begin{figure}[tbp] \centering % Hier tikzpicture oder axis einfügen \caption{Geschwindigkeit im Zeitverlauf} \label{fig:velocity}\end{figure}Erläutern Sie in der Beschriftung Inhalt, Datenquelle und gegebenenfalls Unsicherheit. Der Zeichencode ersetzt diese Erklärung nicht.
Häufige Probleme
Environment tikzpicture undefined
Laden Sie tikz; für Knotenpositionierung ist zusätzlich \usetikzlibrary{positioning} erforderlich.
Environment axis undefined
Laden Sie pgfplots, nicht nur TikZ. Die Umgebung axis gehört zu PGFPlots.
Langsame Kompilierung
Reduzieren Sie unnötige Abtastpunkte und Ebenen und verwenden Sie vorbereitete Datendateien. Erstellen Sie sehr große Zeichnungen in einem eigenen Projekt, kompilieren Sie sie, laden Sie das PDF herunter und anschließend als Bild in das Hauptprojekt hoch.
Vollständiges Beispiel
\documentclass[a4paper,12pt]{article}\usepackage[T1]{fontenc}\usepackage{lmodern}\usepackage[ngerman]{babel}\usepackage{pgfplots}\pgfplotsset{compat=1.18}\begin{document}\begin{figure}[tbp] \centering \begin{tikzpicture} \begin{axis}[ width=0.75\linewidth, xlabel={Zeit (s)}, ylabel={Geschwindigkeit (m/s)}, grid=major ] \addplot[blue,thick,mark=*] coordinates { (0,0) (1,1) (2,4) (3,9) }; \end{axis} \end{tikzpicture} \caption{Geschwindigkeit im Zeitverlauf} \label{fig:velocity}\end{figure}\end{document}