Manter a proporção de um gráfico enquanto fornece largura e altura

Manter a proporção de um gráfico enquanto fornece largura e altura

Ok, então depois de lercomo definir a proporção da caixa de plotagemPosso definir a proporção dos meus gráficos com uma chave, nomeadamente aspect ratiode forma que dado o widthou heightele seja dimensionado para este valor e também mantenha a proporção predefinida.

\pgfplotsset{aspect ratio/.code args={#1:#2}{%
  \def\axisdefaultwidth{#1 cm}%
  \def\axisdefaultheight{#2 cm}%
}

Agora eu queria saber se era possível ter uma chave como keepaspectratioa do graphicxpacote que mesmo que dadaheight e widtho gráfico resultante ignoraria automaticamente uma das dimensões para manter a proporção definida anteriormente. Algo como:

\pgfplotsset{keep aspect ratio/.code={%
  \pgfmathsetmacro{\currentratio}{\currentwidth/\currentheight}%
  \ifnum\currentratio<\predefinedratio%
     ignore height%
  \else%
     ignore width%
  \fi%
}

Aqui está um MWE fictício para teste:

\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}

Nem é preciso dizer que o terceiro enredo, após descomentar, keep aspect ratiodeve ser igual ao segundo enredo.

informação relacionada