我正在尝试使用 pgfplotstable 制作数据表,但我不知道如何将第一行变成单列。我把表格做成了水平的,但无法将第一行变成一列,也无法在顶部添加新行。我使用这些包
\usepackage{filecontents}
\usepackage{booktabs}
数据集是
B I
0 0
2 7.95
2.8 11.36
3.8 15.21
4.6 18.28
5.5 22.21
5.9 23.31
6.9 27.30
7.9 31.56
8.9 35.55
\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[colnames from=index]\loadedtable{grafic_1.dat}
\pgfplotstabletypeset[
columns/colnames/.style={
string type,
column name={Table data}},
column type=l, % specify the align method
every head row/.style={before row=\hline,after row=\hline}, % style the first row
every last row/.style={after row=\hline}, % style the last row
every last column/.style={column type/.add={}{|}}, % style the last column
every column/.style={column type/.add={|},
column name={}
}
]
\loadedtable
答案1
第一个表格使用booktabs
已加载的。第二个表格带有垂直线,使用\arraystretch
来自包的array
垂直扩展单元格。
随着 LaTeX 的新版本的推出,filecontents
不再需要该包。
在这两种情况下,第一行都插入 \multicolumn{11}{c}{Table data}
\documentclass[12pt,a4paper]{article}
\usepackage{pgfplotstable}
\usepackage{booktabs}
\usepackage{array}% to expand the cells
%\usepackage{filecontents}% not needed anymore
\begin{filecontents*}[overwrite]{grafic_1.dat}
B I
0 0
2 7.95
2.8 11.36
3.8 15.21
4.6 18.28
5.5 22.21
5.9 23.31
6.9 27.30
7.9 31.56
8.9 35.55
\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{grafic_1.dat}
\pgfplotstabletypeset[
every head row/.style={%
before row={\toprule%
\multicolumn{11}{c}{Table data}
\\ \midrule},
output empty row},
every last row/.style={after row=\bottomrule},
string type,
]{\loadedtable}
\vspace*{60pt}
\renewcommand{\arraystretch}{1.5} % expand the cells
\pgfplotstabletypeset[
every head row/.style={%
before row={\hline%
\multicolumn{11}{|c|}{Table data}
\\ },
output empty row},
after row={\hline},
every last column/.style={column type/.add={}{|}},
every column/.style={column type/.add={|}{}},
string type,
]{\loadedtable}
\end{document}