如何自动将列乘以 100 以获得 pgfplotstable 中的百分比数字?

如何自动将列乘以 100 以获得 pgfplotstable 中的百分比数字?

我有一个包含百分比的 csv 文件,需要将其加载到 pgfplotstable 中。我已经使用 siunitx 对其进行了格式化,但我没有找到移动小数点(乘以 100)以获取百分比数字的可能性。

以下是 MWE:

\documentclass[12pt]{standalone}
\usepackage{filecontents}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{siunitx}
\begin{document}

\begin{filecontents}{data.csv}
0.563725,0.819520,0.713402
0.563725,0.819520,0.713402
\end{filecontents}

\sisetup{
  round-mode          = places,
  round-precision     = 2,
}
\pgfplotstabletypeset[ 
      col sep=comma,
      display columns/0/.style={column type={S},string type},
      display columns/1/.style={column type={S},string type},
      display columns/2/.style={column type={S},string type}
    ]{data.csv}
\end{document}

答案1

您可以对排版定义应用预处理操作:

\pgfplotstabletypeset[ 
   col sep=comma,
   columns/0/.style={preproc/expr={100*##1}},
   columns/1/.style={preproc/expr={100*##1}},
   columns/2/.style={preproc/expr={100*##1}},
]{data.csv}

查看PgfplotsTable 手册,“预处理单元格内容”部分。

答案2

尽管接受了答案,但我还是通过使用内置样式属性找到了另一种解决方案multiply with

\pgfplotstabletypeset[ 
  col sep=comma,
  display columns/0/.style={column type={S},string type,multiply with=100},
  display columns/1/.style={column type={S},string type,multiply with=100},
  display columns/2/.style={column type={S},string type,multiply with=100}
]{data.csv}

相关内容