¿Dibujar líneas en una trama y darles una etiqueta?

¿Dibujar líneas en una trama y darles una etiqueta?

Estoy en mi primera aventura al trazar con LaTeX. Logré trazar mi gráfico de barras. Tengo dos grupos de valores para los cuales quiero mostrar el promedio. Tengo la intención de poner una barra horizontal sobre el gráfico de barras y dejar que indique los valores promedio. Lamentablemente, el dibujo no está acoplado a la escala o similar. En el momento que tenga que cambiar algo en la escala/etiquetado todo estará fuera de su lugar. ¿Existe una forma recomendada de dibujar líneas (o flechas) que correspondan a los valores de datos del gráfico subyacente?

Respuesta1

Supongo que tiene problemas para utilizar a tikz \drawdentro \pgfplotdel axisentorno. En este caso, debe utilizar el axis cssistema de coordenadas como lo ilustra la línea de puntos en rojo:

ingrese la descripción de la imagen aquí

Notas:

Código: especifique los valores x mínimo y máximo

\documentclass{article}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}
    \addplot {x*x};
    \draw [ultra thick, dotted, draw=red] 
        (axis cs: -6,12) -- (axis cs: 6,12)
        node[pos=0.5, above] {$y=12$};
\end{axis}
\end{tikzpicture}
\end{document}

Código: determina automáticamente los valores x mínimo y máximo

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

\begin{document}
\begin{tikzpicture}
\begin{axis}
    \addplot {x*x};
    
    \newcommand*{\VerticalPos}{12}% Desired vertical postion
    \coordinate (Left)  at ($(current axis.left of origin) +(axis direction cs: 0,\VerticalPos)$);
    \coordinate (Right) at ($(current axis.right of origin)+(axis direction cs: 0,\VerticalPos)$);
    
    \draw [ultra thick, dotted, draw=red] 
        (Left) -- (Right)
        node[pos=0.5, above] {$y=\VerticalPos$};
\end{axis}
\end{tikzpicture}
\end{document}

información relacionada