使用 pgfplotstable,我想根据 csv 输入为自动创建的表格的最后一行中的单个单元格着色。由于表格的长度不同,我需要动态地为最后一个单元格着色。
我发现此解决方案,这与我想要实现的目标非常接近。
我只是在这条代码行上挣扎:
every row 2 column 3/.style={
...
有没有办法插入行数,同时\pgfplotstabletypeset
产生类似的结果?
every row LAST column 3/.style={
...
答案1
您可以通过以下方式将格式添加到列描述中:
postproc cell content/.append code={\ifnum\numexpr\pgfplotstablerow+1=\pgfplotstablerows %
\pgfkeys{/pgfplots/table/@cell content/.add={\cellcolor{red!10!white}}{}}\fi}
关键变量是\pgfplotstablerows
存储总行数。
\documentclass{article}
%
\usepackage{siunitx}
\DeclareSIUnit{\krypt}{\ensuremath{\mathcal{K}r}}
\usepackage{tikz}
\usepackage{pgfplots}\pgfplotsset{compat=1.9}
\usepackage{pgfplotstable}
\usepackage{booktabs, colortbl}
\pgfplotstableread{
kr Rreal Rlin deltaR
0 138.16 143 -4.84
1 154.18 159.8 -5.62
2 195.01 176.6 18.41
3 202.82 193.4 9.42
4 205.55 210.2 -4.65
}{\fitR}
\begin{document}
\pgfplotstabletypeset[zerofill,
%dec sep align,
columns/kr/.style={precision=1, column name={Kryptorad (\si{\krypt})}},
columns/Rreal/.style={precision=2, column name={$R(c)$ (real) (\si{k\ohm})}},
columns/Rlin/.style={precision=2, column name={$R(c)$ (lin) (\si{k\ohm})}},
columns/deltaR/.style={precision=2, column name={$\epsilon_\mathrm{abs}$ (lin) (\si{k\ohm})},
column type={r}, fixed,
postproc cell content/.append code={\ifnum\numexpr\pgfplotstablerow+1=\pgfplotstablerows %
\pgfkeys{/pgfplots/table/@cell content/.add={\cellcolor{red!10!white}}{}}\fi}},
every head row/.style={before row=\toprule,after row=\midrule},
every last row/.style={after row=\bottomrule},
]{\fitR}
\end{document}