Balkendiagramme mit pgfplots
Fügen Sie einer pgfplots-axis ybar (senkrechte Balken) oder xbar (waagerechte Balken) hinzu, benennen Sie die Kategorien mit symbolic x coords und geben Sie jede Reihe als \addplot mit Koordinaten an.
Senkrechte Balken mit benannten Kategorien
ybar an der Achse macht aus jeder Reihe Balken. symbolic x coords zählt die Kategorienamen der Reihe nach auf, und xtick=data setzt unter jeden Balken einen Teilstrich.
Eine Reihe von Balken
\begin{tikzpicture}
\begin{axis}[
ybar, ymin=0,
symbolic x coords={Mon, Tue, Wed, Thu, Fri},
xtick=data,
ylabel={Visitors},
enlarge x limits=0.15,
]
\addplot coordinates {(Mon,44) (Tue,31) (Wed,38) (Thu,27) (Fri,40)};
\end{axis}
\end{tikzpicture}Balken beginnen bei null. Ohne ymin=0 lässt die Achse etwas Platz unter null; setzen Sie es also, damit die Balken auf dem Rahmen stehen. enlarge x limits schafft Platz an den Seiten, damit die äußeren Balken nicht vom Rahmen abgeschnitten werden.
Gruppierte Balken und Wertebeschriftungen
Bei mehreren Reihen stehen die Balken jeder Kategorie nebeneinander. nodes near coords schreibt jeden Wert über seinen Balken, und bar width legt die Breite fest (standardmäßig 10pt).
Zwei Reihen mit Werten an den Balken
\begin{tikzpicture}
\begin{axis}[
ybar, ymin=0, ymax=55, bar width=12pt,
symbolic x coords={Erika, Hans, John},
xtick=data, enlarge x limits=0.25,
nodes near coords,
ylabel={Points},
legend style={at={(0.5,-0.12)}, anchor=north, legend columns=2},
]
\addplot coordinates {(Erika,44) (Hans,31) (John,38)};
\addplot coordinates {(Erika,40) (Hans,36) (John,29)};
\legend{Round 1, Round 2}
\end{axis}
\end{tikzpicture}ybar=4pt legt den Abstand zwischen den Balken einer Gruppe fest (standardmäßig 2pt).
Gestapelte Balken
ybar stacked setzt die Reihen übereinander statt nebeneinander. Das zweite \addplot beginnt dort, wo das erste endet.
Gestapelte Balken pro Quartal
\begin{tikzpicture}
\begin{axis}[
ybar stacked, ymin=0, bar width=16pt,
symbolic x coords={Q1, Q2, Q3, Q4},
xtick=data, enlarge x limits=0.2,
legend pos=north west, ylabel={Sales},
]
\addplot coordinates {(Q1,12) (Q2,18) (Q3,15) (Q4,22)};
\addplot coordinates {(Q1,6) (Q2,9) (Q3,12) (Q4,10)};
\legend{Online, In store}
\end{axis}
\end{tikzpicture}Waagerechte Balken
xbar zeichnet die Balken von links nach rechts. Tauschen Sie die Rollen der Achsen: Die Kategorien kommen in symbolic y coords und ytick=data, und jede Koordinate wird als (Wert, Kategorie) geschrieben.
Waagerechte Balken
\begin{tikzpicture}
\begin{axis}[
xbar, xmin=0, xmax=50,
symbolic y coords={Rust, Python, C},
ytick=data, enlarge y limits=0.3,
nodes near coords, xlabel={Projects},
width=8cm, height=5cm,
]
\addplot coordinates {(44,Rust) (31,Python) (12,C)};
\end{axis}
\end{tikzpicture}xbar stacked funktioniert ebenfalls.
Zahlen als Kategorien
Jahreszahlen und andere Zahlen brauchen keine symbolic x coords: Plotten Sie sie als Zahlen und verwenden Sie xtick=data. pgfplots schreibt 2024 standardmäßig als „2,024“; schalten Sie das Tausendertrennzeichen im Stil der Teilstrichbeschriftungen aus.
Jahreszahlen auf der x-Achse
\begin{tikzpicture}
\begin{axis}[
ybar, ymin=0, xtick=data, enlarge x limits=0.25,
x tick label style={/pgf/number format/1000 sep=},
]
\addplot coordinates {(2023,18) (2024,31) (2025,44)};
\end{axis}
\end{tikzpicture}Die Optionen im Überblick
| Option | Was sie bewirkt | In Scissor LaTeX |
|---|---|---|
ybar, xbar | senkrechte oder waagerechte Balken nebeneinander | Funktioniert |
ybar=4pt | der Abstand zwischen den Balken einer Gruppe | Funktioniert |
ybar stacked, xbar stacked | Balken übereinander | Funktioniert auf linearen Achsen |
bar width=12pt | die Breite jedes Balkens | Funktioniert |
bar shift=.. | eine Reihe seitlich verschieben | Funktioniert |
nodes near coords | der Wert über (oder neben) jedem Balken | Funktioniert |
symbolic x coords, symbolic y coords | benannte Kategorien | Funktioniert, außer bei Namen, die wie Zahlen aussehen (keine Teilstrichbeschriftungen) |
xticklabel style={rotate=45, anchor=east} | schräg gestellte Kategorienamen | Funktioniert |
ybar interval | Balken, die den Raum zwischen x-Werten füllen | Teilweise: als gewöhnliche Balken an den x-Werten gezeichnet |
hist (Bibliothek statistics) | Werte in Klassen zählen | Nicht unterstützt: wird mit einer Meldung ignoriert, die Rohwerte werden als Linie gezeichnet |
Was anders ist als in einer TeX-Installation
Alle Beispiele auf dieser Seite lassen sich auch mit pgfplots in einer TeX-Installation übersetzen. Handbuch: ctan.org/pkg/pgfplots.
Siehe auch Grundlagen von pgfplots, Fehlerbalken, Daten aus CSV und pgfplots.
Fragen und Antworten
Wie erstelle ich ein Balkendiagramm in LaTeX?
Laden Sie pgfplots und schreiben Sie \begin{axis}[ybar, symbolic x coords={A,B,C}, xtick=data] mit einem \addplot coordinates {(A,3) (B,5) (C,2)}; pro Reihe.
Wie zeige ich die Werte über den Balken an?
Fügen Sie den Achsenoptionen nodes near coords hinzu. Jeder Balken bekommt seinen Wert als Beschriftung.
Wie lasse ich die Balken bei null beginnen?
Sie beginnen bereits bei null. Setzen Sie ymin=0 an der Achse (oder xmin=0 bei xbar), um den Platz darunter zu entfernen.
Jedes Beispiel auf dieser Seite wird beim Erstellen der Website von Scissor LaTeX gesetzt. Zuletzt aktualisiert am 2026-11-07.