![如何将 pgfplotstabletypeset 与 sweave 结合使用](https://linux22.com/image/299773/%E5%A6%82%E4%BD%95%E5%B0%86%20pgfplotstabletypeset%20%E4%B8%8E%20sweave%20%E7%BB%93%E5%90%88%E4%BD%BF%E7%94%A8.png)
我正在尝试在 LateX 中制作一个表格,其中单元格的背景颜色取决于数字的大小。我在以下网址找到了一些答案通过 TikZ 对表格中的阴影进行参数化但我无法让它们与 Sweave 结合使用。下面是上述页面上给出的第一个答案,在我使用 Sweave 的部分之前,它一直有效,尽管我印象中 Sweave 给出了正确的输出。
我也尝试过关于这个主题的其他答案,但我无法将它们与 Sweave 结合使用。如果有人可以让下面的代码运行,或者知道使用 Sweave 的其他方法,我将不胜感激!
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{pgfplotstable}
\pgfplotstableset{
color cells/.style={
col sep=comma,
string type,
postproc cell content/.code={%
\pgfkeysalso{@cell content=\rule{0cm}{2.4ex}\cellcolor{black!##1}\pgfmathtruncatemacro\number{##1}\ifnum\number>50\color{white}\fi##1}%
},
columns/x/.style={
column name={},
postproc cell content/.code={}
}
}
}
\begin{document}
\SweaveOpts{concordance=TRUE}
\begin{table}\caption{Correlation or something}
\centering
\pgfplotstabletypeset[color cells]{
x,a,b,a1,b1
a,90,10.5,0,0
b,0,80,10,10
a1,0,0,95,5
b1,0,10,5,85
}
\end{table}
\begin{table}\caption{Correlation or something2}
\centering
\pgfplotstabletypeset[color cells]{
<<echo=FALSE, results=tex>>=
xx<-data.frame(a=c(90,10.5,0,0),b=c(0,80,10,10),a1=c(0,0,95,5),b1=c(0,10,5,85))
rownames(xx)=c('a','b','a1','b1')
for(i in 0: nrow(xx)){
if(i==0){
cat(c("x,",paste0(colnames(xx)[1:(ncol(xx)-1)],","),colnames(xx)[ncol(xx)]),"\n")
}else{
cat(paste0(rownames(xx)[i],","),paste0(xx[i,1:(nrow(xx)-1)],","),xx[i,nrow(xx)],"\n")
}
}
@
}
\end{table}
\end{document}