好吧,讀完後如何設定繪圖框縱橫比我可以用一個鍵來設定繪圖的縱橫比,即aspect ratio
以給定width
或height
它將縮放到該值並保持預先定義的縱橫比的方式。
\pgfplotsset{aspect ratio/.code args={#1:#2}{%
\def\axisdefaultwidth{#1 cm}%
\def\axisdefaultheight{#2 cm}%
}
現在我想知道是否有可能擁有一把鑰匙,例如包裝keepaspectratio
中的鑰匙graphicx
,即使給了height
和 width
產生的圖將自動忽略其中一個維度,以保持先前定義的縱橫比。就像是:
\pgfplotsset{keep aspect ratio/.code={%
\pgfmathsetmacro{\currentratio}{\currentwidth/\currentheight}%
\ifnum\currentratio<\predefinedratio%
ignore height%
\else%
ignore width%
\fi%
}
這是一個用於測試的虛擬 MWE:
\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}
不言而喻,取消註釋後的第三個情節keep aspect ratio
應該與第二個情節相同。