В следующем коде у меня есть длинная метка на одном из наконечников стрелок. Я хотел бы повернуть метку на 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}