pgfplotstable 的多行标题

pgfplotstable 的多行标题

我有一个 csv 文件格式的数据集,正在加载到 中pgfplotstable。我无法更改原始 csv 的格式,并且作为财务数据,它在表格顶部有一列项目名称和两三个解释性数据点。例如

\documentclass{article}
\usepackage{array,datatool,pgfplotstable}
  \begin{filecontents}{sample.csv}
    item,2008,2009,2010,2011
     ,Actual,Actual,Forecast,Forecast
     ,GBP,GBP,GBP,GBP
     ,('000),('000),('000),('000) rounded
    Area 1 OP, 1000000,1500000,1750000,250000
    Area 2 OP, 400000,500000, 450000,-50000
    Area 51 OP, 300000,375000,390000,15000
    No P, 1250000, 1000000, 950000, 50000
    Residuals, 800000, 80000, 90000, 10000
  \end{filecontents}

\pgfplotstableread[col sep=comma]{sample.csv}\mystuff

我对下一个阶段感到困惑,即排版,\mystuff以便我有逗号分隔符,并可以添加一行来汇总“区域”列。目前,要显示表格,我必须执行类似以下操作

\begin{document}

\pgfplotstableread[col sep=comma,header=false]{sample.csv}\mystuff

\pgfplotstabletypeset[
  columns/0/.style={string type},
  columns/1/.style={string type},
  columns/2/.style={string type},
  columns/3/.style={string type},
  columns/4/.style={string type}]\mystuff

\end{document}

如何将前三行标记为字符串,并将其余后四列标记为整数类型,以便我可以格式化和转换它们?

答案1

由于pgfplotstable尚不支持多行标题,因此您需要特别格式化这些行上的单元格。我无法让行样式帮我完成此操作,因此最终格式化了每个单独的单元格:

\documentclass{article}
\usepackage{array,datatool,pgfplotstable}
\pgfplotsset{compat=1.6}
  \begin{filecontents}{sample.csv}
    item,2008,2009,2010,2011
     ,Actual,Actual,Forecast,Forecast
     ,GBP,GBP,GBP,GBP
     ,('000),('000),('000),('000) rounded
    Area 1 OP, 1000000,1500000,1750000,250000
    Area 2 OP, 400000,500000, 450000,-50000
    Area 51 OP, 300000,375000,390000,15000
    No P, 1250000, 1000000, 950000, 50000
    Residuals, 800000, 80000, 90000, 10000
  \end{filecontents}

\pgfplotstableread[col sep=comma]{sample.csv}\mystuff

\begin{document}

\pgfplotstabletypeset[
fixed,
display columns/0/.style={string type},
every row 0 column 1/.style={string type},
every row 0 column 2/.style={string type},
every row 0 column 3/.style={string type},
every row 0 column 4/.style={string type},
every row 1 column 1/.style={string type},
every row 1 column 2/.style={string type},
every row 1 column 3/.style={string type},
every row 1 column 4/.style={string type},
every row 2 column 1/.style={string type},
every row 2 column 2/.style={string type},
every row 2 column 3/.style={string type},
every row 2 column 4/.style={string type}]\mystuff

\end{document}

示例输出

请注意,我已指定fixed默认单元格格式。您最初的尝试可能只是使用单个样式,string type而不是为每个单独的列指定样式。

相关内容