我有一个文档,其中我使用 tikz 包含不同的子图。问题是,子图 y 轴上的数字可能具有不同的长度,这导致子图未正确对齐(水平)。
我已经找到了这回答一个非常相似的问题,建议使用该trim axis left
选项。这解决了对齐问题,但标签不再遵守页边距。
下面是重现该问题的示例代码(trim axis left
已注释掉):
\documentclass[11pt,a4paper]{article}
\usepackage{pgfplots}
\usepackage{lipsum}
\usepackage{subcaption}
\pgfplotsset{compat=newest}
\begin{document}
\lipsum[1]
\begin{figure}[ht]
\centering
\begin{subfigure}[b]{1.0\columnwidth}
\begin{tikzpicture}%[trim axis left]
\begin{axis}[%
axis line style = thick,
width=4in,height=1in,at={(0in,0in)},
scale only axis,
xmin=0,xmax=10,ymin=0,ymax=1,
axis x line*=bottom,axis y line*=left
]
\addplot [color=red,dashed,line width=2.0pt]
table[row sep=crcr]{%
0 0.1\\
9 0.9\\
};
\end{axis}
\end{tikzpicture}
\end{subfigure}
\begin{subfigure}[b]{1.0\columnwidth}
\begin{tikzpicture}%[trim axis left]
\begin{axis}[%
axis line style = thick,
width=4in,height=1in,at={(0in,0in)},
scale only axis,
xmin=0,xmax=10,ymin=0,ymax=9000,
axis x line*=bottom,axis y line*=left
]
\addplot [color=red,dashed,line width=2.0pt]
table[row sep=crcr]{%
0 1000\\
9 9000\\
};
\end{axis}
\end{tikzpicture}
\end{subfigure}
\end{figure}
\lipsum[1]
\end{document}
以下图片显示了该问题:
我希望两个图像水平对齐,同时仍尊重页边距。
有人知道怎么做吗?
答案1
解决您的问题的一种可能方法——正如我在评论中提到的:
\documentclass[11pt,a4paper]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{subcaption}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
\begin{figure}[ht]
\pgfplotsset{width=\linewidth,
axis lines=left,
axis line style = thick,
scale only axis
}
\centering
\begin{subfigure}[b]{.8\columnwidth} % narower subfigure
% determine diagram width
\begin{tikzpicture}[trim axis left,trim axis right]
\begin{axis}[height=1in,
xmin=0, xmax=10,
ymin=0, ymax=1,
]
\addplot [color=red,dashed,line width=2.0pt]
table[row sep=crcr]{%
0 0.1\\
9 0.9\\
};
\end{axis}
\end{tikzpicture}
\end{subfigure}
\medskip
\begin{subfigure}[b]{0.8\columnwidth}
\begin{tikzpicture}[trim axis left,trim axis right]
\begin{axis}[height=1in,%
xmin=0, xmax=10,
ymin=0, ymax=9000,
]
\addplot [color=red,dashed,line width=2.0pt]
table[row sep=crcr]{%
0 1000\\
9 9000\\
};
\end{axis}
\end{tikzpicture}
\end{subfigure}
\end{figure}
\lipsum[1]
\end{document}