![Movimento horizontal de uma etiqueta girada em PGFPLOTS](https://rvso.com/image/298798/Movimento%20horizontal%20de%20uma%20etiqueta%20girada%20em%20PGFPLOTS.png)
No código a seguir, tenho um rótulo longo em uma das pontas da seta. Gostaria de girar o rótulo em 90 graus e colocá-lo logo abaixo da ponta da seta. Usei a rotate
opção e a pos
opção de girar e mover o rótulo verticalmente. Como posso mover o rótulo horizontalmente para a direita para que ele seja exibido logo abaixo da ponta da seta?
\documentclass[12pt]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
scale=5,
anchor=origin,
axis x line=middle,
axis y line=middle,
every axis x label/.style={at={(current axis.right of origin)},anchor=west},
every axis y label/.style={at={(current axis.above origin)},anchor=south},
enlarge x limits=0.05,
enlarge y limits=0.1,
xlabel=$x$,
ylabel=$y$,
x=1cm, y=1cm,
xtick=\empty,
ytick=\empty
]
\addplot [domain=-.5:1.65] {sin(deg(x))};
\draw[blue,->] (axis cs:pi/6,0.5)--(axis cs:pi/6,0) node[anchor=north, rotate=-90, pos=1.5]{$long-label$};
\draw[blue,->] (axis cs:pi/2,1)--(axis cs:pi/2,0) node[anchor=north]{$s_2$};
\end{axis}
\end{tikzpicture}
\end{document}
Responder1
Use anchor=west
em vez disso (sem pos
; o padrão é 1.0
). E não use o modo matemático para texto (não tenho certeza do seu caso de uso real aqui).
A explicação completa: quando a rotate
chave é usada, as âncoras do nó ( north
, south
, etc. giram com ela (ou seja, é uma transformação de coordenadas locais). Portanto, "norte" quando o sistema de coordenadas principal está, na verdade, west
dentro do sistema de coordenadas girado do nó .
\documentclass[12pt]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
scale=5,
anchor=origin,
axis x line=middle,
axis y line=middle,
every axis x label/.style={at={(current axis.right of origin)},anchor=west},
every axis y label/.style={at={(current axis.above origin)},anchor=south},
enlarge x limits=0.05,
enlarge y limits=0.1,
xlabel=$x$,
ylabel=$y$,
x=1cm, y=1cm,
xtick=\empty,
ytick=\empty
]
\addplot [domain=-.5:1.65] {sin(deg(x))};
\draw[blue,->] (axis cs:pi/6,0.5)--(axis cs:pi/6,0) node[anchor=west, rotate=-90]{long-label};
\draw[blue,->] (axis cs:pi/2,1)--(axis cs:pi/2,0) node[anchor=north]{$s_2$};
\end{axis}
\end{tikzpicture}
\end{document}