Pgfplots – Darstellung von Daten und Funktionen in LaTeX
Teil 1: Theorie – Einführung in das Paket pgfplots
Das pgfplots-Paket ist ein leistungsstarkes Tool zur Erstellung von Diagrammen und Grafiken in LaTeX. Es basiert auf TikZ und bietet eine Vielzahl von Möglichkeiten zur Darstellung mathematischer Funktionen, experimenteller Messwerte und anderer datenbasierter Grafiken.
Das Paket unterstützt verschiedene Koordinatensysteme (linear, logarithmisch, polar), verschiedene Datenquellen (manuell, externe Dateien, mathematische Ausdrücke) sowie Regressionen und Fehlerbalken.
Video
Folien
Beschreibung
Installation und Grundstruktur
Um pgfplots zu nutzen, muss das Paket in der Präambel eingebunden werden:
\usepackage{pgfplots}
\pgfplotsset{compat=1.18} % oder eine andere Version
Zusätzlich kann pgfplotstable verwendet werden, wenn Tabellen als Datenquelle genutzt werden:
\usepackage{pgfplotstable}
Die Hauptumgebung für Plots ist:
\begin{tikzpicture}
\begin{axis}[optionale Einstellungen]
\addplot {mathematische Funktion};
\end{axis}
\end{tikzpicture}
Grundlegende Befehle und Konzepte
1. Achsensysteme und Beschriftungen
pgfplots unterstützt verschiedene Achsensysteme:
- Linear (Standard)
- Logarithmisch (
loglogaxis,semilogxaxis,semilogyaxis) - Polar (
polaraxis)
Die Achsen können beschriftet werden:
\begin{axis}[
xlabel={X-Achse},
ylabel={Y-Achse}
]
\end{axis}
Die Legende wird mit \legend{} hinzugefügt.
2. Funktionen zeichnen
Eine mathematische Funktion kann mit \addplot expression dargestellt werden:
\addplot expression {sin(x)};
Es ist möglich, den Definitionsbereich und die Anzahl der Stützpunkte festzulegen:
\addplot[domain=0:10, samples=100] {exp(-x) * sin(deg(x))};
3. Datenquellen verwenden
pgfplots kann Daten aus verschiedenen Quellen verarbeiten:
- Manuelle Koordinaten
- Tabellen-Dateien (
.dat) - Direkte Tabellen in LaTeX
Manuelle Koordinaten werden wie folgt eingefügt:
\addplot coordinates {
(0,1) (1,2) (2,1) (3,3)
};
Externe Datenquellen werden mit \pgfplotstableread eingelesen:
\pgfplotstableread[col sep=comma]{data.csv}\daten
\addplot table[x=Zeit, y=Temperatur] {\daten};
Hierbei muss die Spaltenstruktur der Datei beachtet werden.
4. Fehlerbalken und Regression
Fehlerbalken können mit zusätzlichen Spalten in der Datenquelle definiert werden:
\addplot+[error bars/.cd, y dir=both, y explicit] table[x=Zeit, y=Messwert, y error=Fehler]{daten.txt};
Eine lineare Regression kann mit \pgfplotstablecreatecol[linear regression] durchgeführt werden.
Beispiele & Anwendungen
Beispiel 1: Eine einfache mathematische Funktion zeichnen
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
title={Exponentielle Abklingfunktion},
xlabel={x-Werte},
ylabel={f(x)},
grid=major
]
\addplot expression[domain=0:5, samples=50] {exp(-x)};
\legend{e^{-x}}
\end{axis}
\end{tikzpicture}
\end{document}
Erklärung:
grid=majoraktiviert das Gitter.\addplot expressionzeichnet die Funktione^{-x}.- Die Achsen sind mit
xlabelundylabelbeschriftet.
Beispiel 2: Messwerte mit Fehlerbalken
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xlabel={Strom I (mA)},
ylabel={Spannung U (V)}
]
\addplot+[only marks, error bars/.cd, y dir=both, y explicit]
table[x index=0, y index=1, y error index=2] {
0.5 2.5 0.2
1.0 3.1 0.3
1.5 4.2 0.4
2.0 5.5 0.5
};
\legend{Messwerte mit Fehlerbalken}
\end{axis}
\end{tikzpicture}
\end{document}
Erklärung:
- Die Werte sind direkt als Tabelle eingefügt.
- Die dritte Spalte definiert die Fehlerbalken.
Beispiel 3: Lineare Regression mit Daten aus einer Datei
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstableread[col sep=comma]{data.csv}\daten
\pgfplotstablecreatecol[linear regression]{regression}{\daten}
\begin{tikzpicture}
\begin{axis}[
xlabel={Zeit (s)},
ylabel={Temperatur (°C)}
]
\addplot table[x=Zeit, y=Temperatur] {\daten};
\addplot[red, thick] table[x=Zeit, y=regression] {\daten};
\legend{Messwerte, Lineare Regression}
\end{axis}
\end{tikzpicture}
\end{document}
Erklärung:
- Die Datei
data.csventhält Spalten mitZeitundTemperatur. \pgfplotstablecreatecol[linear regression]berechnet die Regressionsgerade.
Aufgaben & Übungen
Aufgabe 1: Erstellen Sie eine einfache Funktion mit pgfplots
Erstellen Sie ein LaTeX-Dokument, das mit dem Paket pgfplots den Graphen der Funktion
[
f(x) = x^2 - 3x + 2
]
im Bereich ( -2 \leq x \leq 5 ) darstellt.
- Achsenbeschriftungen:
xlabel={x-Wert},ylabel={f(x)} - Gitterlinien hinzufügen:
grid=major - Titel hinzufügen:
"Quadratische Funktion"
👉 Hinweis: Verwenden Sie die \addplot-Anweisung mit expression.
Aufgabe 2: Arbeiten Sie mit manuell gesetzten Koordinaten
Erstellen Sie eine manuelle Datenreihe, die eine Messreihe mit fünf Punkten darstellt.
Die Datenpunkte sind:
[
(1,2), (2,3), (3,5), (4,7), (5,11)
]
- Verwenden Sie
\addplot coordinates {...} - Fügen Sie eine Legende
"Messwerte"hinzu - Stellen Sie sicher, dass die Punkte als Kreuze (
mark=x) dargestellt werden.
Aufgabe 3: Erstellen Sie eine logarithmische Darstellung
Erstellen Sie eine logarithmische Darstellung der Funktion
[
g(x) = \ln(x)
]
für ( 1 \leq x \leq 10 ).
- Verwenden Sie
\begin{semilogxaxis} ... - Markieren Sie fünf Punkte auf der Kurve als Kreise (
mark=o). - Fügen Sie die Legende
"Logarithmus-Funktion"hinzu.
Hausaufgaben
Hausaufgabe 1 (Theoretisch): Vorteile von pgfplots
Verfassen Sie eine kurze Antwort auf folgende Fragen:
- Warum ist es vorteilhaft,
pgfplotszur Darstellung von Diagrammen in LaTeX zu verwenden? - Welche unterschiedlichen Datenquellen können mit
pgfplotsverwendet werden? - Was ist der Unterschied zwischen einer mathematischen Funktion (
expression) und einer externen Datenquelle (table)?
👉 Antworten sollten in einem kurzen, gut verständlichen LaTeX-Dokument formuliert werden.
Hausaufgabe 2 (Praktisch): Externe Datenquelle nutzen
Erstellen Sie ein LaTeX-Dokument, das eine Messreihe aus einer externen Datei daten.dat liest und als Diagramm darstellt.
- Struktur der Datei
daten.dat:1 2 2 3 3 5 4 7 5 11 - Laden Sie die Daten mit
\pgfplotstableread{daten.dat}\daten. - Plotte die Daten mit
\addplot table {...}. - Fügen Sie eine Legende hinzu.