将移位应用于(当前轴.原点左侧)

将移位应用于(当前轴.原点左侧)

我试图改进解决方案在图中画线并给它们贴上标签?使用 Jake 的答案如何在 PGFplots 轴环境中访问 \xmin、\xmax、\ymin、\ymax。因此,杰克的答案产生了棕色虚线(x 轴),其中

(current axis.left of origin) -- (current axis.right of origin)

我认为,只需使用 的tikzcalc,我就可以调整水平线的垂直位置。y=12例如,如果我想在 处设置一条水平线,我只需使用

($(current axis.left of origin)+(axis cs: 0,12)$) -- ($(current axis.right of origin)+(axis cs: 0,12)$)

我已经在其中应用了 a,+ (axis cs: 0,12)并且对其他坐标也应用了相同的操作。

嗯,理论上这很棒,但实际上却行不通。相反,它产生了红色虚线(这只是所需线的一半):

在此处输入图片描述

笔记:

  • 我没有进行坐标计算,而是尝试应用shift={(axis cs: 0,12)}选项,但这对输出没有影响。

代码:

\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}
\begin{axis}
    \addplot {x*x};
    
    \draw [ultra thick, dotted, draw=brown] 
        (current axis.left of origin) -- 
        (current axis.right of origin);
        
    \draw [ultra thick, dashed, draw=red] 
        ($(current axis.left of origin) +(axis cs: 0,12)$) -- 
        ($(current axis.right of origin)+(axis cs: 0,12)$);
\end{axis}
\end{tikzpicture}
\end{document}

答案1

我真的不知道为什么,但这对我有用

\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{calc}

\pgfplotsset{compat=1.10}

\begin{document}
\begin{tikzpicture}
\begin{axis}
    \addplot {x*x};

    \draw [ultra thick, dotted, draw=brown] 
        (current axis.left of origin) -- 
        (current axis.right of origin);

    \draw [ultra thick, draw=red] 
        ($(current axis.left of origin)-(axis cs:0,-12)$) -- 
        ($(current axis.right of origin)+(axis cs:0,12)$);
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容