pgfplots:将第二个 y 轴放置在固定的 x 位置

pgfplots:将第二个 y 轴放置在固定的 x 位置

我有第二个 y 轴,即“(紫色) q 轴”。
我必须设置什么才能将第二个 y 轴通过 (1,0) 放置在原始坐标系 (黑色) 上。

在此处输入图片描述

\documentclass[margin=5pt, tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}[]
\begin{axis}[
x=3cm, % needed
%y=1cm, 
axis lines=middle, 
xlabel= $\overline{x}$,
ylabel= $\overline{y}$,
axis line style={-latex},
]
\addplot[domain=0.05:2.5, black]{-(1-x)^2/x};
\addplot[domain=-2.5:-0.05, black]{-(1-x)^2/x};
\end{axis}

\begin{axis}[purple, 
hide x axis, 
axis lines*=middle, 
ylabel= $q$,
y label style={rotate=-90, 
at={(ticklabel* cs:0.95)}, anchor=west,   },
% Problem ===================
shift={(3cm,0)}, % ???
]
\end{axis}
\end{tikzpicture}
\end{document}

答案1

我认为你可以添加

\coordinate (axis2origin) at (1,0);

到第一个axis环境,以及

anchor=origin,
shift={(axis2origin)},

到第二个选项。正如您所料,第二个轴的原点将位于第一个轴的 (1,0)。

\documentclass[margin=5pt, tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}[]
\begin{axis}[
x=3cm, % needed
%y=1cm, 
axis lines=middle, 
xlabel= $\overline{x}$,
ylabel= $\overline{y}$,
axis line style={-latex},
]
\addplot[domain=0.05:2.5, black]{-(1-x)^2/x};
\addplot[domain=-2.5:-0.05, black]{-(1-x)^2/x};

\coordinate (axis2origin) at (1,0);
\end{axis}

\begin{axis}[purple, 
hide x axis, 
axis lines*=middle, 
ylabel= $q$,
y label style={rotate=-90, 
at={(ticklabel* cs:0.95)}, anchor=west,   },
% Problem ===================
anchor=origin,
shift={(axis2origin)},
 % ???
]
\end{axis}
\end{tikzpicture}
\end{document}

相关内容