![pgfplots:将第二个 y 轴放置在固定的 x 位置](https://linux22.com/image/457915/pgfplots%EF%BC%9A%E5%B0%86%E7%AC%AC%E4%BA%8C%E4%B8%AA%20y%20%E8%BD%B4%E6%94%BE%E7%BD%AE%E5%9C%A8%E5%9B%BA%E5%AE%9A%E7%9A%84%20x%20%E4%BD%8D%E7%BD%AE.png)
我有第二个 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}