如何将 pgfplotstabletypeset 与 sweave 结合使用

如何将 pgfplotstabletypeset 与 sweave 结合使用

我正在尝试在 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}

相关内容