Горизонтальное перемещение повернутой метки в PGFPLOTS

Горизонтальное перемещение повернутой метки в PGFPLOTS

В следующем коде у меня есть длинная метка на одном из наконечников стрелок. Я хотел бы повернуть метку на 90 градусов, а затем разместить ее прямо под наконечником стрелок. Я использовал опцию rotateи posопцию для вращения и перемещения метки по вертикали. Как мне переместить метку горизонтально вправо, чтобы она отображалась прямо под наконечником стрелок?

\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}

введите описание изображения здесь

решение1

Вместо этого используйте anchor=west(без pos; по умолчанию 1.0). И не используйте математический режим для текста (я не уверен в вашем фактическом варианте использования здесь).

Полное объяснение: при rotateиспользовании ключа якоря узла ( north, south, и т.д. вращаются вместе с ним (то есть это локальное преобразование координат). Таким образом, «север» относительно основной системы координат фактически находится westвнутри повернутой системы координат узла.

\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}

введите описание изображения здесь

Связанный контент