Estaba tratando de mejorar la solución en¿Dibujar líneas en una trama y darles una etiqueta?usando la respuesta de Jake enCómo acceder a \xmin, \xmax, \ymin, \ymax desde el entorno del eje PGFplots. Entonces, la respuesta de Jake produce la línea de puntos marrón (el eje x) con
(current axis.left of origin) -- (current axis.right of origin)
Pensé que un uso simple de tikz
la calc
biblioteca me permitiría ajustar la posición vertical de la línea horizontal. Si quiero una línea horizontal en y=12
, por ejemplo, simplemente uso
($(current axis.left of origin)+(axis cs: 0,12)$) -- ($(current axis.right of origin)+(axis cs: 0,12)$)
donde he aplicado un + (axis cs: 0,12)
y lo mismo para la otra coordenada.
Bueno, eso es genial en teoría, pero no funciona. En cambio, produce la línea discontinua en rojo (que es sólo la mitad de la línea deseada):
Notas:
- En lugar de hacer cálculos de coordenadas, también intenté aplicar
shift={(axis cs: 0,12)}
la opción pero eso no tuvo ningún efecto en el resultado.
Código:
\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}
Respuesta1
Realmente no sé por qué, pero esto funciona para mí.
\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}