“仅缩放轴”仅适用于一个轴?

“仅缩放轴”仅适用于一个轴?

编辑:我完全重新表述了这个问题。考虑以下 MWE:

\documentclass{article}
\usepackage{showframe}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
    \begin{axis}[height=\textheight,width=\textwidth,scale only axis]
    \addplot {2^x};
\end{axis}
\end{tikzpicture}
\end{document}

使用键scale only axis,您可以看到两个轴(x 和 y)的尺寸与我的文本页面和标签等的尺寸完全相同,不再适合那里。如果我将其删除,轴环境会在两个维度上缩小,以便所有内容都适合页面。

现在我的问题是,我是否可以将该键scale only axis仅应用于 y 轴。例如,因为我希望绘图在 x 方向上取最大宽度而不超出边距(因此 x 维度没有scale only axis),但轴的高度精确为 5cm(因此scale only axisy 需要该选项)。

为了检查是否正确完成,我想要上面的例子,其中一个维度应用了键,而另一个维度没有应用。


旧(原始)问题:

在 中pgfplots,是否可以将键scale only axis仅应用于 y 轴?我之所以问这个问题是因为我想给出图的整体宽度(包括标签等),但需要轴的高度正好是 5 厘米。

答案1

正如杰克在评论中指出的那样#1#2,标签所使用的空间始终是一个固定值45pt,请参阅 PGFplots 手册:

请注意,pgfplots 仅估计轴和刻度标签所需的大小。估计假设轴框外的任何内容都有固定的空间量。这会导致最终图像可能比规定的尺寸略大或略小。但是,固定量始终相同;它设置为 45pt

他还提到了两种等效的可能性,它们将产生与实际期望接近的相同结果: width=\textwidth, height=5cm+45pt或者scale only axis, width=\textwidth-45pt, height=5cm

一种更复杂的方法是使用tikzscale 包它正是为了克服这个缺点而开发的。

相关内容