在以下最小工作示例中,如何更改用于节点的数字格式?例如,截断 5 位数字后的数字。
\documentclass{standalone}
\usepackage{currfile}
\usepackage{filecontents}
\usepackage{pgfplots}\pgfplotsset{compat=newest}
%\usepackage{tikz}
\begin{filecontents*}{data.txt}
640 9 9 1.111111111111111e-01 1.111111111111111e-01 1.234567890000000e+00 3.360958503340160e-03 6.801367190507313e-04 6.801883693667268e-04 1.234567890000000e+00 1.234567890000000e+00
\end{filecontents*}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot coordinates{(0,0) (1,1)};
\pgfplotstablegetelem{0}{[index]{7}}\of{data.txt};\edef\nodeText{\pgfplotsretval};
% HOW DO I CHANGE THE NUMBER FORMAT FOR THE NODE HERE?
\draw[draw opacity=0] (axis cs:0,0) -- (axis cs:1,1) node[pos=0.5] {\nodeText};
% HOW DO I CHANGE THE NUMBER FORMAT FOR THE NODE HERE?
\end{axis}
\end{tikzpicture}
\end{document}
在pgfplots
手册中,更改刻度的数字格式(4.13 数字格式选项,修订版 1.12(2015/01/31))有描述,但没有描述节点的数字格式。我该怎么做?
答案1
您可以将其包含\nodeText
在该章节中找到的相同标签中。例如,我在这里使用了\pgfmathprintnumber[sci]{...}
。但您可以将其更改为您喜欢的格式。1
注意:的作者pgfplots
建议不要使用\pgfplotsset{compat=newest}
,因为如果它更新并且有变化,它将影响您的代码。最好坚持使用定义的版本,这样无论更新如何,结果都是相同的。
输出
代码
\documentclass[margin=10pt]{standalone}
\usepackage{currfile}
\usepackage{filecontents}
\usepackage{pgfplots}
%\usepackage{tikz}
\pgfplotsset{compat=1.8}
\begin{filecontents*}{data.txt}
640 9 9 1.111111111111111e-01 1.111111111111111e-01 1.234567890000000e+00 3.360958503340160e-03 6.801367190507313e-04 6.801883693667268e-04 1.234567890000000e+00 1.234567890000000e+00
\end{filecontents*}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot coordinates{(0,0) (1,1)};
\pgfplotstablegetelem{0}{[index]{7}}\of{data.txt};\edef\nodeText{\pgfplotsretval};
\draw[draw opacity=0] (axis cs:0,0) -- (axis cs:1,1) node[pos=0.5] {\pgfmathprintnumber[sci]{\nodeText}};
\end{axis}
\end{tikzpicture}
\end{document}
1: Pgfplots 手册,版本 1.12.1,第 4.13 章 - 数字格式选项,第 265 页。