\pgfmathsetmacro 中的数字格式用于 tikz \foreach 环境中的自动文件夹命名

\pgfmathsetmacro 中的数字格式用于 tikz \foreach 环境中的自动文件夹命名

我想要做的是在 tikz 中的 foreach 循环内自动创建数据文件的文件名。也许最好先展示一个最小示例:

\documentclass{standalone}
\usepackage{tikz,pgfplots,pgfplotstable}
\pgfplotstableset{%
    col sep=semicolon,
    x index=0,
    y index=1,
}
\usetikzlibrary{fpu}
\usepackage{filecontents}

\begin{filecontents}{(TA0.04)(T0.08).txt}
1;1
2;2
3;3
\end{filecontents}

\begin{filecontents}{(TA0.04)(T0.09).txt}
2;1
3;2
5;3
\end{filecontents}

\begin{filecontents}{(TA0.04)(T0.10).txt}
4;1
5;2
8;3
\end{filecontents}


\begin{document}

\begin{tikzpicture}
\def\TA{0.04}
\begin{axis}[xlabel=$x$, ylabel=$y$]
    \foreach \A in {0.04,0.05,0.06} {
        \pgfkeys{/pgf/fpu,/pgf/fpu/output format=fixed}
        \pgfmathsetmacro{\T}{\TA+\A}
        \pgfmathroundtozerofill{\T}
        \addplot table {(TA\TA)(T\T).txt};
    }
\end{axis} 
\end{tikzpicture}

\end{document}

在这个小小的 tikz 图片中,我想要执行以下操作(并且我必须对相当大的一组数据文件和不同的起始值执行此操作)。

  • 首先,我想为 \TA 定义一个起始值,我已经使用 \def 完成了……
  • 给定循环数字列表,我想为每个循环计算一个当前变量 \T,它表示 \TA 和当前循环变量 \A 的总和
  • 现在,给定这三个数字,我想从我的数据文件中加载数据(请参阅文件名的序言)

这是我的问题...

当总和等于0.10我收到错误:

... 无法读取表格文件‘(TA0.04)(T0.1).txt’。...

因为 \T 的值是0.1并不是0.10

我的文件名中的每个数字都恰好是两位数,但有时最后一个数字是零,如上所示。我尝试用 来解决这个问题,\pgfmathroundtozerofill{\T}但没有成功。

有人知道我该如何解决这个问题吗?我该如何修复数字的数量或将这些零添加到数字中???

PS 标题似乎与 tikz 的 foreach 语句中的数字格式,但这个问题对我没有帮助。因此我开始了现在的问题。

答案1

您几乎已经掌握了,您只需要在命令中使用\pgfmathresult而不是。这是因为不会改变 的内容,而是将结果保存在 中。\T\addplot\pgfmathroundtozerofill\T\pgfmathresult

相关内容