如何将pgfplotstabletypeset与sweave结合使用

时间:2014-10-15 07:55:56

标签: colors latex cell sweave

我正在尝试在LateX中创建一个表格,其中我的单元格的背景颜色取决于数字的大小。我在https://tex.stackexchange.com/questions/42444/parametrize-shading-in-table-through-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}

0 个答案:

没有答案