pgfplots@data@xmin 和 \pgfkeysvalueof{/pgfplots/xmin} 的最小值/最大值

pgfplots@data@xmin 和 \pgfkeysvalueof{/pgfplots/xmin} 的最小值/最大值

以下示例不起作用:

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\begin{document}
\makeatletter
\begin{tikzpicture}
  \begin{axis}
    \addplot  coordinates {(948e-6,1.61981) (1.5e-3,1.02377) (2e-3,0.769047) (2.5e-3,0.614994) (3e-3,0.503511)};
    \node (A) at ({rel axis cs:0.25,0.25}) {\pgfkeysvalueof{/pgfplots/xmin}};
    \node (B) at ({rel axis cs:0.75,0.75}) {\pgfplots@data@xmin};
    \node (C) at ({rel axis cs:0.5,0.5}) {\pgfmathparse{min(\pgfplots@data@xmin,\pgfkeysvalueof{/pgfplots/xmin})} \pgfmathresult};
  \end{axis}
\end{tikzpicture}
\makeatother
\end{document}

错误信息:

line 14 error| Package PGF Math Error: Unknown operator `Y' or `Y9' (in 'min(1Y9.48e-4],7.427876e-4)').

如果我禁用\node (C)它,它就会起作用。

我不明白为什么返回值\pgfplots@data@xmin看起来这么奇怪。

答案1

正如 percusse 在评论中所说,这是 PGFPlots 使用的浮点表示。要使您的代码正常工作,请在命令\pgfkeys{/pgf/fpu}前添加\pgfmathparse以打开浮点数学解析器。要使用常规表示打印结果,请使用\pgfmathprintnumber{\pgfmathresult}格式化数字,或设置\pgfkeys{/pgf/fpu=true, /pgf/fpu/output format=fixed}为使用定点输出格式。

\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\makeatletter
\begin{tikzpicture}
  \begin{axis}
    \addplot  coordinates {(948e-6,1.61981) (1.5e-3,1.02377) (2e-3,0.769047) (2.5e-3,0.614994) (3e-3,0.503511)};
    \node (A) at ({rel axis cs:0.25,0.25}) {\pgfkeysvalueof{/pgfplots/xmin}};
    \node (B) at ({rel axis cs:0.75,0.75}) {\pgfplots@data@xmin};
    \node (C) at ({rel axis cs:0.5,0.5}) {
        \pgfkeys{/pgf/fpu=true}
        \pgfmathparse{min(\pgfplots@data@xmin,\pgfkeysvalueof{/pgfplots/xmin})}
        \pgfmathprintnumber{\pgfmathresult}
    };
  \end{axis}
\end{tikzpicture}
\makeatother
\end{document}

相关内容