使用groupplots
pgfplots 库,创建对齐图相当简单。现在,我想将左轴移到文档的边缘。通常,如果我有一个没有 的单个图,则可以使用和groupplots
的组合来完成。trim axis left
scale only axis
考虑以下示例。我想创建四个图,以 2x2 的方式对齐。
\documentclass{article}
\usepackage{pgfplots}
\usepackage{lipsum}
\usepgfplotslibrary{groupplots}
\begin{document}
\lipsum[2]
\begin{tikzpicture}[trim axis left]
\begin{groupplot}[
group style={group size=2 by 2},
width=0.499\textwidth,
scale only axis,
]
\nextgroupplot
\addplot {x};
\nextgroupplot
\addplot {x*x};
\nextgroupplot
\addplot {1};
\nextgroupplot
\addplot {-x};
\end{groupplot}
\end{tikzpicture}
\lipsum[2]
\end{document}
但是,应用trim axis left
和scale only axis
,现在不仅会修剪左侧图的左轴,还会修剪所有左侧图。这可能是因为每个子图都会修剪其左侧的所有内容,如果是右侧图,则包括左侧图。
我尝试通过的可选参数在本地应用这些选项\nextgroupplot
,但没有成功。有一个类似的问题关于对齐,但我更希望采用包含 的解决方案groupplots
。有办法吗?
答案1
使用trim axis group left
,它是为 量身定制的groupplots
。在您的示例中,您可能还需要\noindent
,但您的实际文档中是否需要它取决于 是否tikzpicture
在figure
环境中。
如果您希望右轴边框也与文本的右侧对齐,您可以设置horizontal sep
,然后设置width
为0.5\textwidth
减去一半horizontal sep
。
\documentclass{article}
\usepackage{pgfplots}
\usepackage{lipsum}
\usepgfplotslibrary{groupplots}
\begin{document}
\lipsum[2]
\noindent\begin{tikzpicture}[trim axis group left]
\begin{groupplot}[
group style={
group size=2 by 2,
horizontal sep=30pt
},
width=0.5\textwidth-15pt, % subtract half the horizontal sep
scale only axis,
]
\nextgroupplot
\addplot {x};
\nextgroupplot
\addplot {x*x};
\nextgroupplot
\addplot {1};
\nextgroupplot
\addplot {-x};
\end{groupplot}
\end{tikzpicture}
\lipsum[2]
\end{document}