编辑:我完全重新表述了这个问题。考虑以下 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 axis
y 需要该选项)。
为了检查是否正确完成,我想要上面的例子,其中一个维度应用了键,而另一个维度没有应用。
旧(原始)问题:
在 中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 包它正是为了克服这个缺点而开发的。