Ich möchte einen Plot generieren, der zwei Funktionen vergleicht, indem unterhalb des Hauptplots die Differenz der beiden Funktionen geplottet wird. Dieser zweite Plot sollte wesentlich kleiner sein als der Hauptplot. Bisher habe ich folgendes. Wenn ich die height auf 4cm setze, dann ändert sich die width allerdings gleich mit. Wie kann ich die width exakt gleich dem oberen Plot setzen? Wenn möglich, sollte die Lösung mit pgfplots 1.5.1 kompatibel sein.

Open in writeLaTeX
\documentclass{article}
\usepackage{pgfplots}
%\pgfplotsset{compat=1.5.1}
\usepgfplotslibrary{groupplots}
\begin{document}

\begin{tikzpicture}
    \begin{groupplot}[
             group style={group size=1 by 2, horizontal sep=0pt, vertical sep=0pt,
                 x descriptions at=edge bottom},
             xlabel={$k$}, domain=0:15
         ]
         \nextgroupplot[ylabel={$P(k)$}]
         \addplot {sin(50*x)};
         \addplot {sin(51*x)};
         \nextgroupplot[
             ylabel={$\Delta P(k)$},
             height=4cm,
             width=8.44cm  % How can I set the width to be the same as the top plot?
         ]
         \addplot {sin(50*x) - sin(51*x)};
     \end{groupplot}
\end{tikzpicture}
\end{document}

gefragt 27 Sep '14, 04:22

hsgg's gravatar image

hsgg
3311
Akzeptiert-Rate: 0%

bearbeitet 28 Sep '14, 11:20

esdd's gravatar image

esdd
17.8k284257

2

Wieso nicht mit \begin{groupplot}[width=12cm, .... einheitliche Breite festlegen?

(27 Sep '14, 14:14) cis

Hah, wie simpel! Dass ich nicht selber darauf gekommen bin... Funktioniert super. Wäre dann noch schön, wenn ich die Breite auf die von pgfplots selbst gewählte Breite setzen könnte. (Mit width=0.5textwidth wird es etwas dünner.)

(27 Sep '14, 18:25) hsgg

Du kannst, wie von @cis vorgeschlagen, die Breite für alle Teilplots als Option von groupplot festlegen. Wenn diese gleich der von pgfplots selbst gewählten, also voreingestellten Breite sein soll, dann kannst Du width=\axisdefaultwidth oder width=240pt setzen, da 240pt der laut Dokumentation voreingestellte Wert ist:

Open in writeLaTeX
\documentclass[margin=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.5.1}
\usepgfplotslibrary{groupplots}

\begin{document}

\begin{tikzpicture}
  \begin{groupplot}[
      group style={
          group size=1 by 2,
          vertical sep=0pt,
          x descriptions at=edge bottom},
          xlabel={$k$},
          domain=0:15,
          width=\axisdefaultwidth
    ]
    \nextgroupplot[ylabel={$P(k)$}]
      \addplot {sin(50*x)};
      \addplot {sin(51*x)};
    \nextgroupplot[
        ylabel={$\Delta P(k)$},
        height=4cm
      ]
      \addplot {sin(50*x) - sin(51*x)};
  \end{groupplot}
\end{tikzpicture}
\end{document}

Ergebnis:

alt text

Permanenter link

beantwortet 28 Sep '14, 11:13

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×298
×2

gestellte Frage: 27 Sep '14, 04:22

Frage wurde gesehen: 7,733 Mal

zuletzt geändert: 28 Sep '14, 11:20