![具有共同 y 轴的多个 pgfplots](https://linux22.com/image/449813/%E5%85%B7%E6%9C%89%E5%85%B1%E5%90%8C%20y%20%E8%BD%B4%E7%9A%84%E5%A4%9A%E4%B8%AA%20pgfplots.png)
作为手稿的一部分,我必须绘制 x 轴和 y 轴范围相同的多个图形。我正在使用 subflot 和 tikzpicture。我的问题是,由于两个轴的值范围相同,因此可以消除 y 轴,并排绘制所有图形,其中 x 轴单独,y 轴共用。每个图形都有散点图和线图(实际数据和拟合数据)。手册中提到了堆叠图,但这不是我想要的。请帮帮我。
\documentclass[3p, dvipsnames]{elsarticle}
\usepackage{pgfplots,pgfplotstable}
\usetikzlibrary{plotmarks}
\pgfplotsset{every tick/.style={thick,}}
\pgfkeys{/pgf/number format/set thousands separator = }
\pgfplotsset{scaled x ticks= true}
\pgfplotsset{compat=1.13}
\usepgfplotslibrary{patchplots,colormaps, colorbrewer}
\usepackage{subfig}
\usepackage{graphicx}
%......................................................................................
\begin{document}
\begin{figure*}[tb]
\centering
\subfloat[][]{
\begin{tikzpicture}[scale=0.68, font = \large]
\begin{axis}[
ylabel={$y'$},
xlabel={$y$},
]
%..............................................................................................................................
\addplot[mark = none, line width=1.25pt, color =black][domain = 25:350, samples= 50]{(1.114938029*x)+(-16.01)};
\legend{$\, Y_1$}
\end{axis}
\end{tikzpicture}\label{fig:label1}
}
\subfloat[][]{
\begin{tikzpicture}[scale=0.68, font = \large]
\begin{axis}[
ylabel={$y'$},
xlabel={$ y $},
]
%..............................................................................................................................
\addplot[mark = none, line width=1.25pt, color = RedOrange][domain = 25:350, samples= 50]{(0.96*x)+(5.98)};
\legend{$\, Y_2$}
\end{axis}
\end{tikzpicture}\label{fig:label2}
}
\subfloat[][]{
\begin{tikzpicture}[scale=0.68, font = \large]
\begin{axis}[
ylabel={$y'$},
xlabel={$ y$},
]
%..............................................................................................................................
\addplot[mark = none, line width=1.25pt, color = Cerulean][domain = 25:350, samples= 50]{(0.96*x)+(6.00)};
\legend{$\, Y_3$}
\end{axis}
\end{tikzpicture}\label{label3}
}
\caption{My caption.}\label{figlabel}
\end{figure*}
\end{document}
答案1
如果你希望它像你的图像中那样,那么使用 就不再有意义了subfig
。这里有一种方法可以做到:
\documentclass[tikz, border=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\pgfplotsset{legend pos=north west, ymin=-10, ymax=400}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
name=plot1,
ytick pos=left,
xlabel={$y$}, ylabel={$y'$},
]
\addplot[very thick][domain=25:350, samples=2]{(1.114938029*x)+(-16.01)};
\legend{$\, Y_1$}
\end{axis}
\begin{axis}[
name=plot2, at={(plot1.south east)},
ytick=\empty,
xlabel={$y$},
]
\addplot[orange, very thick][domain=25:350, samples=2]{(0.96*x)+(5.98)};
\legend{$\, Y_2$}
\end{axis}
\begin{axis}[
name=plot3, at={(plot2.south east)},
ytick=\empty,
xlabel={$y$},
]
\addplot[teal, very thick][domain=25:350, samples=2]{(0.96*x)+(6.00)};
\legend{$\, Y_3$}
\end{axis}
\end{tikzpicture}
\end{document}