保持繪圖的縱橫比,同時給予寬度和高度

保持繪圖的縱橫比,同時給予寬度和高度

好吧,讀完後如何設定繪圖框縱橫比我可以用一個鍵來設定繪圖的縱橫比,即aspect ratio以給定widthheight它將縮放到該值並保持預先定義的縱橫比的方式。

\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應該與第二個情節相同。

相關內容