pgfplots:来自改变的宏的坐标

pgfplots:来自改变的宏的坐标

我确实意识到 pgfplots 需要在\end{axis}应用缩放等方面发挥作用。但是有没有办法可以让它按预期工作?

在 MWE 中,我从宏中定义一个坐标(我的真实示例类似,但这应该涵盖它),我们在坐标处绘制一个点,更改宏,然后再次绘制。在我的系统上,我只在 (2,2) 处得到一个点。

是否存在某种我不知道的扩展技巧可以解决这个问题?(就我而言,我可以只创建路径交叉点,但这应该更快)

\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    xmax=3,xmin=0,ymax=3,ymin=0
    ]
     \draw (axis cs: 0,0) -- (axis cs:3,3);

     \def\Test{1}

     \coordinate (A) at (axis cs: \Test,\Test);

     \fill (A) circle (2pt);
     \def\Test{2}
     \fill (A) circle (2pt);
  \end{axis}
\end{tikzpicture}

\end{document}

答案1

最好的解决方案可能是使用这个技巧

\edef\temp{
    \noexpand\coordinate (A) at (axis cs: \Test,\Test);
}
\temp

在处理环境的其他情况下也需要这样做axis

基本上,我们要求\Test在定义坐标之前扩展宏,而不是在axis稍后排版时扩展。

相关内容