如何一次性格式化一系列 pgfplotstable 列?

如何一次性格式化一系列 pgfplotstable 列?

我想一次性设置一系列列(下面 MWE 中的 1、2、3),但不覆盖第一列的格式。因此,我认为“所有”列解决方案不适用。

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

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

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

答案1

您可以构建自己的多重设置器

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

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

\sisetup{
  round-mode          = places,
  round-precision     = 2,
}

\pgfplotstableset{
  my multistyler/.style 2 args={
    @my multistyler/.style={display columns/##1/.append style={#2}},
    @my multistyler/.list={#1}
  }
}
\pgfplotstabletypeset[ 
      col sep=comma,
      my multistyler={0,...,3}{string type},
      my multistyler={1,2,3}{column type={S}}
    ]{data.csv}
\end{document}

在此处输入图片描述

相关内容