使用 pgfplotstable 的水平表

使用 pgfplotstable 的水平表

如何在pgfplotstable表格形式输入文件中制作表格

AB
1.0 20
1.1 21
1.2 22
1.3 23
1.4 24

看起来像这样: 在此处输入图片描述

我尝试使用\pgfplotstabletranspose\loadedtable{input.dat} \pgfplotstabletypeset\loadedtable,但列名 (A 和 B) 解析为浮点数(并给出错误)。并且列名计数从 0 开始(我需要从 1 开始)。

而且是否可以打破(连字符)大的水平表?

答案1

A 和 B 列的错误来自于pgfplotstables除非另有说明,否则需要数值数据。要使列处理字符串,您必须设置columns/colnames/.style={string type}

为了使索引从一开始,我建议动态创建一个新列并将其用作带有键的列名colnames from=<name>

以下是 MWE:

\documentclass{article}

\usepackage{pgfplotstable}
\usepackage{filecontents}

\begin{filecontents}{testdata.dat}
A  B
1.0 20
1.1 21
1.2 22
1.3 23
1.4 24
\end{filecontents}

\begin{document}

\pgfplotstableset{
    create on use/index/.style={%
        create col/assign/.code={%
            \pgfmathtruncatemacro\entry{\pgfplotstablerow+1}%
            \pgfkeyslet{/pgfplots/table/create col/next content}{\entry}
        }
    }
}

\pgfplotstabletranspose[colnames from=index]\loadedtable{testdata.dat} 

\pgfplotstabletypeset[
    columns/colnames/.style={
        string type,
        column name={\#}
    }
]\loadedtable

\end{document}

pgfplotstable转置

相关内容