Estou em minha primeira aventura plotando com LaTeX. Consegui traçar meu gráfico de barras. Tenho dois grupos de valores para os quais quero mostrar a média. Pretendo colocar uma barra horizontal sobre o gráfico de barras e deixar indicar os valores médios. Infelizmente, o desenho não está acoplado ao dimensionamento ou similar. No momento em que tiver que mudar alguma coisa na escala/rotulagem tudo ficará fora do lugar. Existe uma maneira prática de desenhar linhas (ou setas) que correspondam aos valores dos dados do gráfico subjacente?
Responder1
Presumo que você esteja tendo problemas para usar um ambiente tikz
\draw
dentro de \pgfplot
a axis
. Neste caso você precisa usar o axis cs
sistema de coordenadas como ilustra a linha pontilhada em vermelho:
Notas:
- Para adicionar um rótulo a esta linha, você pode usar a
node
como parte do sorteio. - O posicionamento da etiqueta é abordado emMovendo um rótulo ao longo do caminho.
- Graças à resposta de Jake emAplicar mudança para (eixo atual.esquerda da origem), o segundo MWE abaixo deverá funcionar sem exigir especificação dos
x
valores mínimo e máximo. Somente oy
valor precisa ser especificado na\VerticalPos
definição.
Código: Especifique os valores x mínimo e 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: Determine automaticamente os valores mínimo e máximo de x
\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}