以下示例不起作用:
\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}