条形图在Swave&;中未正确显示;knitr生成的pdf

条形图在Swave&;中未正确显示;knitr生成的pdf,r,pdf,plot,knitr,sweave,R,Pdf,Plot,Knitr,Sweave,我不知道这是不是刀子里的虫子?还是我做错了什么 我想从这个向量(1)生成的矩阵中生成一个条形图: 这是条形图(它是堆叠条形图)的代码,总计为100% <<label=figealb1,fig=TRUE,height=3.8,results=hide,echo=FALSE>>= barplot(matrix(as.vector(as.numeric(enzymy$C.ALB[,1:5])),ncol=5)) @ …然后按原样生成绘图-有五列 有什么问题吗 enzymy是一

我不知道这是不是刀子里的虫子?还是我做错了什么

我想从这个向量(1)生成的矩阵中生成一个条形图:

这是条形图(它是堆叠条形图)的代码,总计为100%

<<label=figealb1,fig=TRUE,height=3.8,results=hide,echo=FALSE>>=
barplot(matrix(as.vector(as.numeric(enzymy$C.ALB[,1:5])),ncol=5))
@
…然后按原样生成绘图-有五列

有什么问题吗

enzymy
是一个数据帧列表

str(enzymy)
List of 14
 $ C.ALB  : num [1:5, 1:19] 14.56 8.23 51.9 19.3 6.01 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : NULL
  .. ..$ : chr [1:19] "E1" "E2" "E3" "E4" ...
通过Rstudio导出到图像或pdf效果良好,因此这只是Knitter/Swaeve的问题

这是knitr/Swave pdf生成的绘图的图像

有人能帮忙吗?!谢谢

我正试图按照要求使其可复制,因此: 1.我用的是pdflatex, RStudio版本0.98.490

> R.Version()
$platform
"x86_64-pc-linux-gnu"

$version.string
"R version 3.1.1 (2014-07-10)"

$nickname
"Sock it to Me"
您可以在此处下载数据库:(请编辑下面代码中的路径)

现在加载并准备:

\documentclass{book}
\begin{document}
\SweaveOpts{concordance=TRUE} 

<<>>=
colonies <- read.csv("path/colonies.csv",colClasses="character")
colonies <- colonies[,-3]
colonies <- colonies[,-5]
col_names <- c(1:3,5:35)
colonies[,col_names] <- lapply(colonies[,col_names] , factor)
colonies$Wiek.1 <- as.numeric(colonies$Wiek.1)


enzymy <- lapply(split(colonies, colonies$Wynik), function(x){
          foo<- lapply(lapply(lapply(x[,17:35],summary),function(x){x[2:6]}),prop.table)
          mat <- matrix(unlist(foo)*100,byrow=F,nrow=5)
          colnames(mat) <- c("E1","E2","E3","E4","E5","E6","E7","E8","E9","E10","E11","E12","E13","E14","E15","E16","E17","E18","E19")
  return(mat)
})
@

This graph is what it supposed to look like:

<<label=figealb,fig=TRUE,height=3.8,results=hide,echo=FALSE>>=
barplot(matrix(c(14.556962,  8.227848, 51.898734, 19.303797,  6.012658, 10.126582, 28.797468, 35.759494, 14.873418, 10.443038, 11.708861, 20.253165, 38.924051, 22.468354,  6.645570, 11.501597, 23.003195, 36.741214, 17.891374, 10.862620, 13.870968, 33.548387, 34.516129, 13.548387, 4.516129),ncol=5))
@

This is how it looks like unfortunately:

<<label=figealb1,fig=TRUE,height=3.8,results=hide,echo=FALSE>>=
barplot(matrix(as.vector(as.numeric(enzymy$C.ALB[,1:5])),ncol=5))
@

\end{document}
\documentclass{book}
\开始{document}
\SweaveOpts{concordance=TRUE}
=

菌落没有.numeric(enzymy$C.ALB[,1:5])
给你一个错误,请让你的问题重现。请更新以使它重现。
enzymy$C.ALB
的第一列都是
NA
,因此它正在精确地绘制你告诉它的内容。您需要
条形图(矩阵(如.vector(如.numeric(enzymy$C.ALB[,2:6])),ncol=5))
。查看每一步的数据会让你省去很多头疼的事。对不起,你错了。如果你把我提供的这个例子放到R中:调用
enzymy$C.ALB
之后,你会得到一个19列的向量。其中无一列为NA。我在函数
enzymy
中考虑了第一列NA。在这里,我去掉了您引用的第一个NA列:
foo
> R.Version()
$platform
"x86_64-pc-linux-gnu"

$version.string
"R version 3.1.1 (2014-07-10)"

$nickname
"Sock it to Me"
\documentclass{book}
\begin{document}
\SweaveOpts{concordance=TRUE} 

<<>>=
colonies <- read.csv("path/colonies.csv",colClasses="character")
colonies <- colonies[,-3]
colonies <- colonies[,-5]
col_names <- c(1:3,5:35)
colonies[,col_names] <- lapply(colonies[,col_names] , factor)
colonies$Wiek.1 <- as.numeric(colonies$Wiek.1)


enzymy <- lapply(split(colonies, colonies$Wynik), function(x){
          foo<- lapply(lapply(lapply(x[,17:35],summary),function(x){x[2:6]}),prop.table)
          mat <- matrix(unlist(foo)*100,byrow=F,nrow=5)
          colnames(mat) <- c("E1","E2","E3","E4","E5","E6","E7","E8","E9","E10","E11","E12","E13","E14","E15","E16","E17","E18","E19")
  return(mat)
})
@

This graph is what it supposed to look like:

<<label=figealb,fig=TRUE,height=3.8,results=hide,echo=FALSE>>=
barplot(matrix(c(14.556962,  8.227848, 51.898734, 19.303797,  6.012658, 10.126582, 28.797468, 35.759494, 14.873418, 10.443038, 11.708861, 20.253165, 38.924051, 22.468354,  6.645570, 11.501597, 23.003195, 36.741214, 17.891374, 10.862620, 13.870968, 33.548387, 34.516129, 13.548387, 4.516129),ncol=5))
@

This is how it looks like unfortunately:

<<label=figealb1,fig=TRUE,height=3.8,results=hide,echo=FALSE>>=
barplot(matrix(as.vector(as.numeric(enzymy$C.ALB[,1:5])),ncol=5))
@

\end{document}