Применить сдвиг к (текущая ось.слева от начала координат)

Применить сдвиг к (текущая ось.слева от начала координат)

Я пытался улучшить решениеРисуете ли вы линии на графике и даете им обозначения?используя ответ Джейка наКак получить доступ к \xmin, \xmax, \ymin, \ymax из среды осей PGFplots. Итак, ответ Джейка дает коричневую пунктирную линию (ось x) с

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

Я думал, что простое использование tikzбиблиотеки calcпозволит мне настроить вертикальное положение горизонтальной линии. Если мне нужна горизонтальная линия в y=12, например, я просто использую

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

где я применил + (axis cs: 0,12)и то же самое для другой координаты.

Ну, это здорово в теории, но не работает. Вместо этого получается пунктирная линия красного цвета (которая составляет лишь половину желаемой линии):

введите описание изображения здесь

Примечания:

  • Вместо того чтобы выполнять вычисления координат, я также попробовал применить shift={(axis cs: 0,12)}option, но это не оказало никакого влияния на результат.

Код:

\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}

введите описание изображения здесь

Связанный контент