我正在尝试使用数据集制作数据表并更改数字显示样式。
我有这个数据集
\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}