例子:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{figure}
\begin{tikzpicture}
\begin{axis}
\addplot table {
0 0
1 0
};
\end{axis}
\end{tikzpicture}
\caption{Figure 1}
\end{figure}
\begin{figure}
\begin{tikzpicture}
\begin{axis}
\addplot table {
0 1
1 1
};
\end{axis}
\end{tikzpicture}
\caption{Figure 2}
\end{figure}
\end{document}
这里,第一个图的 y 范围为 [-1, 1],而第二个图的 y 范围为 [-0.8, 1.2]。我希望两个图具有相同的范围,以自动覆盖两条线。
我怎样才能做到这一点而不手动输入 ymin/ymax?
答案1
到目前为止,我似乎可行的解决方案是将两个数据集都输入到两个图中,但在每个图中只绘制其中一个,使用[draw=none, forget plot]
如下选项:
\documentclass{article}
\usepackage{fullpage}
\usepackage{subcaption}
\usepackage{pgfplots}
\begin{document}
\pgfplotstableread{
0 0
1 0
}\tableA
\pgfplotstableread{
0 1
1 1
}\tableB
\begin{figure}
\begin{subfigure}{0.5\textwidth}
\begin{tikzpicture}
\begin{axis}
\addplot table {\tableA};
\addplot [draw=none, forget plot] table {\tableB};
\end{axis}
\end{tikzpicture}
\caption{Foo}
\end{subfigure}
\begin{subfigure}{0.5\textwidth}
\begin{tikzpicture}
\begin{axis}
\addplot [draw=none, forget plot] table {\tableA};
\addplot table {\tableB};
\end{axis}
\end{tikzpicture}
\caption{Bar}
\end{subfigure}
\caption{Foobar}
\end{figure}
\end{document}
我还稍微改变了示例,将图表并排放置,因为这正是我最初想要的(为了更容易比较两个非重叠的图表)。