Zum Inhalt springen

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

LaTeXPräambel: \usepackage{pgfplots}Im Editor öffnen (öffnet in einem neuen Tab)
\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

LaTeXPräambel: \usepackage{pgfplots}Im Editor öffnen (öffnet in einem neuen Tab)
\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}
Gesetzt von Scissor LaTeX: Zwei Reihen mit Werten an den Balken

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

LaTeXPräambel: \usepackage{pgfplots}Im Editor öffnen (öffnet in einem neuen Tab)
\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

LaTeXPräambel: \usepackage{pgfplots}Im Editor öffnen (öffnet in einem neuen Tab)
\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

LaTeXPräambel: \usepackage{pgfplots}Im Editor öffnen (öffnet in einem neuen Tab)
\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

OptionWas sie bewirktIn Scissor LaTeX
ybar, xbarsenkrechte oder waagerechte Balken nebeneinanderFunktioniert
ybar=4ptder Abstand zwischen den Balken einer GruppeFunktioniert
ybar stacked, xbar stackedBalken übereinanderFunktioniert auf linearen Achsen
bar width=12ptdie Breite jedes BalkensFunktioniert
bar shift=..eine Reihe seitlich verschiebenFunktioniert
nodes near coordsder Wert über (oder neben) jedem BalkenFunktioniert
symbolic x coords, symbolic y coordsbenannte KategorienFunktioniert, außer bei Namen, die wie Zahlen aussehen (keine Teilstrichbeschriftungen)
xticklabel style={rotate=45, anchor=east}schräg gestellte KategorienamenFunktioniert
ybar intervalBalken, die den Raum zwischen x-Werten füllenTeilweise: als gewöhnliche Balken an den x-Werten gezeichnet
hist (Bibliothek statistics)Werte in Klassen zählenNicht 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.