我正在尝试使用
\begin{figure}
\centering
\makebox[\columnwidth]{\input{try1.tikz}}
\makebox[\columnwidth]{\input{try2.tikz}}
\end{figure}
文件try1.tikz
和try2.tikz
如下所示。它们之间的唯一区别是前者 xmin=-2,后者 xmin=-4。
我明白了
如何垂直对齐面板?
try1.tikz
是:
\begin{tikzpicture}[font=\footnotesize\sffamily]
\begin{axis}[%
view={0}{90},
width=4cm,
height=4cm,
scale only axis,
xmin=-2, xmax=1,
ymin=0, ymax=1.7,
name=plot2,
unbounded coords=jump]
\end{axis}
\begin{axis}[
view={0}{90},
width=4cm,
height=4cm,
scale only axis,
xmin=-2, xmax=1,
ymin=0, ymax=1.7,
at=(plot2.left of south west), anchor=right of south east,
unbounded coords=jump]
\end{axis}
\begin{axis}[
view={0}{90},
width=4cm,
height=4cm,
scale only axis,
xmin=-2, xmax=1,
ymin=0, ymax=1.7,
at=(plot2.right of south east), anchor=left of south west,
legend style={nodes=right,font=\tiny},
legend pos= north west,
unbounded coords=jump]
\end{axis}
\end{tikzpicture}
并且try2.tikz
是:
\begin{tikzpicture}[font=\footnotesize\sffamily]
\begin{axis}[
view={0}{90},
width=4cm,
height=4cm,
scale only axis,
xmin=-4, xmax=1,
ymin=0, ymax=1.7,
name=plot2,
unbounded coords=jump]
\end{axis}
\begin{axis}[
view={0}{90},
width=4cm,
height=4cm,
scale only axis,
xmin=-4, xmax=1,
ymin=0, ymax=1.7,
at=(plot2.left of south west), anchor=right of south east,
unbounded coords=jump]
\end{axis}
\begin{axis}[
view={0}{90},
width=4cm,
height=4cm,
scale only axis,
xmin=-4, xmax=1,
ymin=0, ymax=1.7,
at=(plot2.right of south east), anchor=left of south west,
legend style={nodes=right,font=\tiny},
legend pos= north west,
unbounded coords=jump]
\end{axis}
\end{tikzpicture}
答案1
这立即引起了人们对groupplots
图书馆的关注pgfplots
。
您的计划可以通过以下方式实现:
% \usepgfplotslibrary{groupplots}
\begin{tikzpicture}
\begin{groupplot}[group style={rows=2,columns=3},
view={0}{90},
width=4cm,height=4cm,
scale only axis,
xmin=-2, xmax=1,
bottom plots/.style={xmin=-4},
ymin=0, ymax=1.7,unbounded coords=jump]
\nextgroupplot
\nextgroupplot
\nextgroupplot
\nextgroupplot[bottom plots]
\nextgroupplot[bottom plots]
\nextgroupplot[bottom plots]
\end{groupplot}
\end{tikzpicture}
将会得到以下图像:
环境groupplot
执行以下操作:
- 确定样式中的
rows
和的绘图数量。(也可以使用)columns
group style
group size=<cols> by <rows>
- 抓住每一个
\nextgroupplot
并按列顺序排列 - 每个都
\nextgroupplot
相当于\begin{axis} ... \end{axis}
groupplot
在环境中(而不是在样式中)指定的每个选项都group style
将添加到每个\nextgroupplot
宏中,从而添加到每个axis
环境中。
如果您需要调整图之间的间距,您可以使用以下样式(应放在键内group style
):
horizontal sep=<dim>
vertical sep=<dim>
因此你可以这样做:
group style={vertical sep=0cm}
使它们在垂直方向上互相接触。pgfplots
手册中有一整节关于此内容的内容,我强烈建议您阅读(它位于相关库)。
答案2
您可以使用该groupplots
库:
\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary[pgfplots.groupplots]
\begin{document}
\begin{figure}
\begin{tikzpicture}[font=\footnotesize\sffamily]
\begin{groupplot}[
group style={group size=3 by 2},
view={0}{90},
width=4cm,
height=4cm,
scale only axis,
xmin=-2, xmax=1,
ymin=0, ymax=1.7,
name=plot2,
unbounded coords=jump]
]
\nextgroupplot \addplot [domain=-2:1, thick, cyan] {rnd};
\nextgroupplot \addplot [domain=-2:1, thick, cyan] {rnd};
\nextgroupplot \addplot [domain=-2:1, thick, cyan] {rnd};
\nextgroupplot[xmin=-4] \addplot [domain=-4:1, thick, cyan] {rnd};
\nextgroupplot[xmin=-4] \addplot [domain=-4:1, thick, cyan] {rnd};
\nextgroupplot[xmin=-4] \addplot [domain=-4:1, thick, cyan] {rnd};
\end{groupplot}
\end{tikzpicture}
\end{figure}
\end{document}
产生
所有图所共有的任何选项都可以作为命令的可选参数\begin{groupplot}
,而每个图所特有的任何选项都可以传递给\nextgroupplot
命令。
为了区分顶部和底部的图,最好的方法可能是为所有图定义一种样式,就像 zeroth 的答案一样。所以我修改了我的答案,以显示如何将选项单独传递给每个图\nextgroupplot
。