
Ok, also nach dem LesenSo legen Sie das Seitenverhältnis des Plotfelds festDas Seitenverhältnis meiner Plots kann ich über eine Taste einstellen, und zwar aspect ratio
so, dass bei gegebenem width
oder height
auf diesen Wert skaliert wird und dabei das vorgegebene Seitenverhältnis beibehalten wird.
\pgfplotsset{aspect ratio/.code args={#1:#2}{%
\def\axisdefaultwidth{#1 cm}%
\def\axisdefaultheight{#2 cm}%
}
Jetzt habe ich mich gefragt, ob es möglich ist, einen Schlüssel wie den keepaspectratio
aus dem graphicx
Paket zu haben, der, selbst wenn er gegeben wird,height
Und width
Das resultierende Diagramm würde automatisch eine der Dimensionen ignorieren, um das zuvor definierte Seitenverhältnis beizubehalten. So etwas wie:
\pgfplotsset{keep aspect ratio/.code={%
\pgfmathsetmacro{\currentratio}{\currentwidth/\currentheight}%
\ifnum\currentratio<\predefinedratio%
ignore height%
\else%
ignore width%
\fi%
}
Hier ist ein Dummy-MWE zum Testen:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{aspect ratio/.code args={#1:#2}{%
\def\axisdefaultwidth{#1 cm}%
\def\axisdefaultheight{#2 cm}},
compat=newest
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[aspect ratio=16:9, width=.8\textwidth]
\addplot[domain=0:10] {0.5*x+6};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[aspect ratio=4:3, width=.8\textwidth]
\addplot[domain=0:10] {0.5*x+6};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[aspect ratio=4:3,
width=.8\textwidth,
height=.8\textheight,
%keep aspect ratio
]
\addplot[domain=0:10] {0.5*x+6};
\end{axis}
\end{tikzpicture}
\end{document}
Es versteht sich von selbst, dass der dritte Plot nach dem Aufheben der Kommentierung keep aspect ratio
mit dem zweiten Plot identisch sein sollte.