我以为我的问题可能在这里的任何地方都能得到解答,但我却无法让它发挥作用。我认为与我的问题相关但无法解决我的问题的问题是节点放置问题和pgfplots:将节点放置在特定的 x 位置上。
我想对使用 绘制的图形进行注释pgfplots
(实际上,它在groupplots
-environment 内)。我尝试使用 PGF 命令draw[<-> (pos a) node [midway,...] -- (pos b)
。但是,节点没有放置在中间,而是在中间。对于below
和,情况并非如此。但是,当我使用或 时above
,也会发生同样的事情。near end
pos=???
我解决了这个问题,只需手动将节点放置在我想要的位置即可。但是,我发现这不太令人满意。请随意查看下面的 MWE。
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\begin{document}
\begin{tikzpicture}
\begin{axis}[{hide y axis,
axis x line=middle,
height=3cm, width=10cm,
xmin=-22.5, xmax=83,
samples=200,
xtick={-20, 0,20, 40, 60, 80}}]
\addplot+[domain=-20:80,mark=none,green]{sin(40*.18*x)};
% % % % % The erroneous part:
% 1.:
\draw[<->,green!70!black,thick] (axis cs:40,0)
node[midway, above,font=\scriptsize] {$\varphi_1$} % This SHOULD work, but doesn´t
-- (axis cs:50,0);
% 2.:
\node[font=\scriptsize,green!70!black] at (axis cs:45,.3) {$\varphi_1$}; %This does work
\end{axis}
\end{tikzpicture}
\end{document}
答案1
您需要将节点放置在路径的末尾:
\draw[<->,green!70!black,thick]
(axis cs:40,0) -- (axis cs:50,0) node[midway, above,font=\scriptsize] {$\varphi_1$};
或在该to
部分之后:
\draw[<->,green!70!black,thick]
(axis cs:40,0) -- node[midway, above,font=\scriptsize] {$\varphi_1$} (axis cs:50,0);
完整示例:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
hide y axis,
axis x line=middle,
height=3cm, width=10cm,
xmin=-22.5, xmax=83,
samples=200,
xtick={-20, 0,20, 40, 60, 80}
]
\addplot+[domain=-20:80,mark=none,green]{sin(40*.18*x)};
\draw[<->,green!70!black,thick]
(axis cs:40,0) -- node[midway, above,font=\scriptsize] {$\varphi_1$} (axis cs:50,0);
\draw[<->,red!70!black,thick]
(axis cs:10,0) -- (axis cs:20,0) node[midway, above,font=\scriptsize] {$\varphi_2$};
\end{axis}
\end{tikzpicture}
\end{document}