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} |
Du kannst, wie von @cis vorgeschlagen, die Breite für alle Teilplots als Option von 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: beantwortet 28 Sep '14, 11:13 esdd |
Wieso nicht mit
\begin{groupplot}[width=12cm, ....
einheitliche Breite festlegen?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.)