Beibehaltung des Seitenverhältnisses eines Diagramms bei gleichzeitiger Angabe von Breite und Höhe

Beibehaltung des Seitenverhältnisses eines Diagramms bei gleichzeitiger Angabe von Breite und Höhe

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 ratioso, dass bei gegebenem widthoder heightauf 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 keepaspectratioaus dem graphicxPaket zu haben, der, selbst wenn er gegeben wird,height Und widthDas 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 ratiomit dem zweiten Plot identisch sein sollte.

verwandte Informationen