我想独立于轴环境的 x 和 y 比例进行定位,例如,一条线比另一条线高 1 厘米。只有在轴坐标系中才知道该线的起点和终点。我的最小示例显示了意料之外的行为:
\documentclass{scrartcl}
\usepackage{tikz,pgfplots}
\usetikzlibrary{calc}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-3,
xmax=11,
ymin=-3,
ymax=11,
x = 0.6cm,
y = 0.6cm,
axis x line=center,
axis y line=center]
\draw[->] (1,1) -- (8,1);
\draw[-,blue] (1,1) ++(0,1cm) -- ($(8,1) + (0,1cm)$);
\end{axis}
\end{tikzpicture}
\end{document}
答案1
您可以在axis
环境内保存坐标,然后在外面绘制第二条线。
\documentclass{scrartcl}
\usepackage{pgfplots}
\usetikzlibrary{calc}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-3,
xmax=11,
ymin=-3,
ymax=11,
x = 0.6cm,
y = 0.6cm,
axis x line=center,
axis y line=center]
\draw[->] (1,1) coordinate(a) -- (8,1) coordinate (b);
\end{axis}
\draw[-,blue] (a) ++(0,1cm) -- ($(b) + (0,1cm)$);
\end{tikzpicture}
\end{document}
另一方面,似乎通过单位向量进行归一化至少在这种情况下是有效的:
\documentclass{scrartcl}
\usepackage{pgfplots}
\usetikzlibrary{calc}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-3,
xmax=11,
ymin=-3,
ymax=11,
x = 0.6cm,
y = 0.6cm,
axis x line=center,
axis y line=center
]
\draw[->] (1,1) coordinate(a) -- (8,1) coordinate (b);
% note that axis cs: is required
\draw[-,blue] (axis cs:1,1+1cm/\pgfkeysvalueof{/pgfplots/y}) -- (axis cs:8,1 + 1cm/\pgfkeysvalueof{/pgfplots/y});
\end{axis}
\end{tikzpicture}
\end{document}