据我所知,最新版本的pgfplots
默认坐标是轴坐标,因此axis cs
不再需要。然而,仍然存在问题相对的坐标。请参阅下面的示例
\documentclass[10pt,convert={convertexe=magick,density=1000,outext=.png}]{standalone}
\usepackage{tikz,pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xmin=0,xmax=10,ymin=-10,ymax=10]
\draw[black] (3,-4) -- ++(axis direction cs:6,0);
\draw[black] (3,-5) -- ++(6,-10);
\end{axis}
\end{tikzpicture}
\end{document}
因此,为了保持线水平,不使用axis direction cs
,必须添加y0, 在哪里y0是最小的是情节中的价值。
这是错误还是功能?我花了好几个小时来调试这个问题。
答案1
如果没有 ,您就无法使相对坐标工作axis direction cs
。因此,这不是一个错误,也不是一个功能。
手册第357页。
的结果轴坐标系始终是轴内的绝对位置。这特别意味着,添加两个点会产生意想不到的效果:表达式 (0,0) ++ (1,0) 不一定与 (1,0) 相同。这种意外效果的背景是 pgfplots 应用了移位线性变换,该变换会移动原点以支持其高精度和高数据范围(比较 disableatascaling 的文档)。为了表达相对位置(或长度),您需要使用轴方向 cs。
坐标系轴方向cs
尽管轴坐标系允许提供绝对位置,轴方向 cs提供方向。它允许通过轴坐标来表达相对位置,包括长度和尺寸。如 axis cs 文档中所述,通过 TikZ ++ 运算符添加两个坐标可能会产生意想不到的效果。++ 操作的正确方法是 axis direction cs: