Ich habe zwei pgfplots Diagramme auf einer Seite. Sie stehen jeweils in einer eigenen center Umgebung, da ich zwischen beiden noch ein oder zwei Sätze im Blocksatz einfügen werde.

Für beide Diagramme gebe ich mit width=8cm die gleiche Breite vor. Da die Achsen aber unterschiedlich beschriftet werden, sind die Grafiken am Ende aber doch verschieden breit und erscheinen damit horizontal versetzt. Ich möchte die Koordinatensysteme aber so aneinander ausrichten, dass sie unabhängig von der Achsenbeschriftung untereinander stehen. Wie kann ich das erreichen?

Open in writeLaTeX
\documentclass{scrartcl} 
\usepackage{pgfplots}
%\pgfplotsset{compat=1.9}% bei Nutzung von writeLaTeX auskommentieren
\pgfplotsset{width=8cm,height=6cm}

\begin{document}
\begin{center}
  \begin{tikzpicture}
    \begin{axis}
      \addplot coordinates {(1,6.45)(2,3.4)(3,4.8)(4,4.1)(5,4.4)};
    \end{axis}
  \end{tikzpicture}
  \captionof{figure}{Abbildung 1}
\end{center}

\begin{center}
  \begin{tikzpicture}
    \begin{axis}[ylabel = {$y(x)$}]
      \addplot coordinates {(1,66.4)(2,43.4)(3,4.8)(4,4.1)(5,9.4)};
    \end{axis}
  \end{tikzpicture}
\captionof{figure}{Abbildung 2}
\end{center}
\end{document}

alt text

gefragt 10 Jan '14, 17:26

welle's gravatar image

welle
10642431
Akzeptiert: 100%

bearbeitet 24 Jan '14, 04:35


Das einfachste scheint mir, beiden {tikzpicture}s die Option trim axis left zu geben:

Open in writeLaTeX
\documentclass{scrartcl} 
\usepackage{pgfplots}
\pgfplotsset{width=8cm,height=6cm}

\begin{document}
\begin{center}
  \begin{tikzpicture}[trim axis left]
    \begin{axis}
      \addplot coordinates {(1,6.45)(2,3.4)(3,4.8)(4,4.1)(5,4.4)};
    \end{axis}
  \end{tikzpicture}
  \captionof{figure}{Abbildung 1}
  \vspace{2\baselineskip}
  \begin{tikzpicture}[trim axis left]
    \begin{axis}[ylabel = {$y(x)$}]
      \addplot coordinates {(1,66.4)(2,43.4)(3,4.8)(4,4.1)(5,9.4)};
    \end{axis}
  \end{tikzpicture}
  \captionof{figure}{Abbildung 2}
\end{center}
\end{document}

alt text

Permanenter link

beantwortet 10 Jan '14, 18:26

Clemens's gravatar image

Clemens
19.0k113060

bearbeitet 11 Jan '14, 09:48

Neben dem Vorschlag von @Clemens, der laut Dokumentation von pgfplots der einzige ist, mit dem man die Abbildungen auch problemlos externalisieren könnte (mit der externalize Bibliothek), gibt es natürlich noch weitere Möglichkeiten.

Einfach nutzbar ist die overlay Option für ylabel style und yticklabel style:

Open in writeLaTeX
\begin{axis}[...,ylabel style={overlay},yticklabel style={overlay},...]

Als weitere Möglichkeit kann man auch \pgfresetboundingbox verwenden, um die ermittelte Bounding Box zurückzusetzen und eine eigene festzulegen. Dabei bietet es sich an, auf die verschiedenen Anker des erstellten Diagrammes (current axis) zurückzugreifen:

Open in writeLaTeX
\documentclass{scrartcl} 
\usepackage{pgfplots}
\pgfplotsset{width=8cm,height=6cm}

\newcommand\myBoundingBox{
  \pgfresetboundingbox% bisher ermittelte Bounding Box wird zurückgesetzt
  % der folgende Code bestimmt die Bounding Box für die Abbildung
  \path(current axis.below south west)rectangle (current axis.above north east);
}

\begin{document}
\begin{center}
  \begin{tikzpicture}
    \begin{axis}
      \addplot coordinates {(1,6.45)(2,3.4)(3,4.8)(4,4.1)(5,4.4)};
    \end{axis}
    \myBoundingBox
  \end{tikzpicture}
  \captionof{figure}{Abbildung 1}
\end{center}

\begin{center}
  \begin{tikzpicture}
    \begin{axis}[ylabel = {$y(x)$}]
      \addplot coordinates {(1,66.4)(2,43.4)(3,4.8)(4,4.1)(5,9.4)};
    \end{axis}
    \myBoundingBox
  \end{tikzpicture}
\captionof{figure}{Abbildung 2}
\end{center}
\end{document}

Alternativ kann man die axis Umgebung in eine pgfinterruptboundingbox Umgebung setzen und anschließend mit \useasboundingbox - wieder unter Nutzung der Anker des erstellten Diagramms - eine geeignete Bounding Box festlegen.

Open in writeLaTeX
...
\begin{pgfinterruptboundingbox}
  \begin{axis}[...
    ...
  \end{axis}
\end{pgfinterruptboundingbox}
\useasboundingbox(current axis.below south west)rectangle (current axis.above north east);
...

Alle drei Vorschläge bieten für andere Anwendungen auch die Möglichkeit, die Beschriftung der x-Achse aus der Festlegung der Bounding Box auszuschließen.

Permanenter link

beantwortet 11 Jan '14, 11:27

esdd's gravatar image

esdd
14.2k53251

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×160
×57

Frage gestellt: 10 Jan '14, 17:26

Frage wurde angeschaut: 4,714 Mal

Zuletzt aktualisiert: 24 Jan '14, 04:35