
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 ratio
de forma que dado o width
ou height
ele 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 keepaspectratio
a do graphicx
pacote que mesmo que dadaheight
e width
o 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 ratio
deve ser igual ao segundo enredo.