\pgfresetboundingbox 是未定义的控制序列?

\pgfresetboundingbox 是未定义的控制序列?

我确信这个问题有一个简单的答案,而我却不知道:我试图使用 pgfplots 将两个图形并排放置,中间没有空格。我以为我可以使用手册中的 \pgfresetboundingbox 命令来做到这一点。但是,LaTeX 在该命令上给出了未定义的控制序列错误。我做错了什么?

\begin{tikzpicture}
\begin{axis}[
ylabel={$\hat{\delta}$},
xlabel={$x$}
]
\addplot table[x index=0, y index=2, header=false]{probset1.txt};
\end{axis}
\pgfresetboundingbox
\end{tikzpicture}
\hspace{0cm}
\begin{tikzpicture}
\begin{axis}[
xlabel={$x$},
ytick=\empty
]
\addplot table[x index=0, y index=3, header=false]{probset1.txt};
\end{axis}
\end{tikzpicture}

答案1

两种方法:

  1. 将轴包含在其中并使用位于轴角落的tikzpicture轴节点south east和放置它们。south west
  2. 按照您的建议重置边界框(可能在更新之后pgf),然后将轴设置为新的边界框。

以下是这两种方法的示例代码:

\documentclass{article}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[anchor=south east,
width=5cm,
ylabel={$\hat{\delta}$},
xlabel={$x$}
]
\addplot coordinates {(1,1) (2,1.5)};
\end{axis}
\begin{axis}[anchor=south west,
width=5cm,
xlabel={$x$},
ytick=\empty
]
\addplot coordinates {(1,1.4) (2,1.1)};
\end{axis}
\end{tikzpicture}

\begin{tikzpicture}
\begin{axis}[
width=5cm,
ylabel={$\hat{\delta}$},
xlabel={$x$}
]
\addplot coordinates {(1,1) (2,1.5)};
\end{axis}\pgfresetboundingbox
\useasboundingbox
(current axis.below south west)
rectangle (current axis.north east);
\end{tikzpicture}%
\begin{tikzpicture}
\begin{axis}[
width=5cm,
xlabel={$x$},
ytick=\empty
]
\addplot coordinates {(1,1.4) (2,1.1)};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容