Я пытался улучшить решениеРисуете ли вы линии на графике и даете им обозначения?используя ответ Джейка наКак получить доступ к \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}