我无法将数字放在表格中,以 4 位数字的精度显示科学格式的数字

我无法将数字放在表格中,以 4 位数字的精度显示科学格式的数字

我正在尝试使用数据集制作数据表并更改数字显示样式。

我有这个数据集

\begin{filecontents*}{tabel_1.dat}
I[$A$]  B[$T$]
0       0
2       0.00795
2.8     0.01136
3.8     0.01521
4.6     0.01828
5.5     0.02221
5.9     0.02331
6.9     0.02730
7.9     0.03156
8.9     0.03555
\end{filecontents*}

并使用此代码制作表格

\pgfplotstableset{
    create on use/index/.style={%
    create col/assign/.code={%
    \pgfmathtruncatemacro\entry{\pgfplotstablerow+1}%
    \pgfkeyslet{/pgfplots/table/create col/next content}{\entry}
    }
    }
    }
\pgfplotstabletranspose\loadedtable{tabel_1.dat} 
\renewcommand{\arraystretch}{1.5} % expand the cells
\pgfplotstabletypeset[
every head row/.style={%
                        before row={\hline%
                        \multicolumn{11}{|c|}{Tabel 1}
                        \\ },
                        output empty row},
after row={\hline},
every last column/.style={column type/.add={}{|}},
every column/.style={column type/.add={|}{}},
string type,
]{\loadedtable}

我已经尝试了\pgfkeys{/pgf/number format/.cd,sci,sci precision}不同的形式,every column/.style={precision=4, column type/.add={|}{}}但都不起作用。我没有收到任何错误消息,但它并没有改变数字的显示方式。

我使用这些包

\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{filecontents}
\usepackage{booktabs}
\usepackage{array,multirow,makecell}

答案1

我不太清楚你的意思到底是什么,但我想这就是你想要的:

桌子

\documentclass{article}

\usepackage{pgfplotstable}

\begin{filecontents}{table_1.dat}
I[$A$]  B[$T$]
0       0
2       0.00795
2.8     0.01136
3.8     0.01521
4.6     0.01828
5.5     0.02221
5.9     0.02331
6.9     0.02730
7.9     0.03156
8.9     0.03555
\end{filecontents}

\begin{document}
    \pgfplotstabletypeset[
        sci zerofill,
        sci precision=4,
        every head row/.style={before row=\hline,after row=\hline},
        every last row/.style={after row=\hline},
        every last column/.style={column type/.add={}{|}},
        every column/.style={column type/.add={|}{}}]
    {table_1.dat}
\end{document}

如果您希望所有数字都以四位科学数字显示,只需在sci和之间添加逗号zerofill

编辑

转置表格的一个简单方法是\pgfplotstabletranspose。这将创建一个新表格并添加一个带有数字的新的第一行。如果要排版这个新表格,您必须使用 隐藏此新行every head row/.style={output empty row}。另请记住,旧标题不再是标题(现在是第一列)。因此您必须添加every first column/.style={string type}

\documentclass{standalone}

\usepackage{pgfplotstable}

\begin{filecontents}{table_1.dat}
I[$A$]  B[$T$]
0       0
2       0.00795
2.8     0.01136
3.8     0.01521
4.6     0.01828
5.5     0.02221
5.9     0.02331
6.9     0.02730
7.9     0.03156
8.9     0.03555
\end{filecontents}

\begin{document}
    \renewcommand{\arraystretch}{1.5}
    \pgfplotstabletranspose[header=false]\tableTrans{table_1.dat}
    \pgfplotstabletypeset[
        sci zerofill,
        sci precision=4,
        every first column/.style={string type},
        every head row/.style={output empty row, after row=\hline},
        every last row/.style={before row=\hline, after row=\hline},
        every last column/.style={column type/.add={}{|}},
        every column/.style={column type/.add={|}{}}]
    {\tableTrans}
\end{document}

转置表

相关内容