pgfplots 中相对“axis cs:”坐标的问题

pgfplots 中相对“axis cs:”坐标的问题

请注意这个 MWE(compat位于 1.13,因此默认坐标位于axis cs:):

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}\pgfplotsset{compat=1.13}
\begin{document}

\begin{tikzpicture}[
    ]
     \begin{axis}[
        xmin=0, xmax=1500,   
        ymin=60, ymax=100,
        axis y line* = right,
        axis x line = none,
        clip mode = individual,
    ]
        %\addplot [domain=0:1500] {97-x/150};
        \addplot [domain=0:1500] {x/15};
        \draw [green, <-] (600, 93) -- ++(0,-1.5);
        \draw [red,  <-] (600, 93) -- (600, 93-1.5);
    \end{axis}
\end{tikzpicture}
\end{document}

这两个draw命令执行完美,并且它们给出相同的箭头,因此您实际上只看到一个:

在此处输入图片描述

如果您现在注释掉\addplot并使用前一个,即像这样:

    \addplot [domain=0:1500] {97-x/150};
    %\addplot [domain=0:1500] {x/15};

相对坐标\draw出错:

在此处输入图片描述

我的错在哪里?是不是相对运动不应该起作用axis cs:?为什么它取决于之前的情节?

答案1

axis cs仅允许绝对位置。如果需要相对位置,则必须使用axis direction cs

\draw [green, <-] (600, 93) -- ++(axis direction cs:0,-1.5);

有关更多信息,请参阅 pgfplots 文档中的“4.17.1 访问图形元素中的轴坐标”部分。

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}\pgfplotsset{compat=1.13}
\begin{document}

\begin{tikzpicture}[
    ]
     \begin{axis}[
        xmin=0, xmax=1500,   
        ymin=60, ymax=100,
        axis y line* = right,
        axis x line = none,
        clip mode = individual,
    ]
        \addplot [domain=0:1500] {97-x/150};
        %\addplot [domain=0:1500] {x/15};
        \draw [green, <-] (600, 93) -- ++(axis direction cs:0,-1.5);
        \draw [red,  <-] (600, 93) -- (600, 93-1.5);
    \end{axis}
\end{tikzpicture}
\end{document}

结果是

在此处输入图片描述

相关内容