我试图在R Studio中使用R标记功能,其中我试图打印在函数内部生成的图。这是我试图做的一个基本的运行示例。在RStudio中使用R Markdown生成功能中的打印图
**Test printing plots generated in a function**
================================================
``` {r fig.width=8, fig.height=4, warning=FALSE, eval=TRUE, message=FALSE, tidy=TRUE, dev='png', echo=FALSE, fig.show='hold', fig.align='center'}
dat <- data.frame(x=c(1:10),y=c(11:20),z=c(21:30),name=rep(c("a","b"),each=5))
library(ggplot2)
ex <- function(data){
plot(data[,1],data[,2])
plot(data[,1],data[,3])
}
for (i in 1:10){
t1 <- rbind(i,ex(dat))
}
t1
```
那些测试此代码,请务必将其保存为“.Rmd”文件,然后运行在RStudio工具栏knithtml()。上面的代码对于我希望的html输出的类型来说绝对正确。但是,当我用基于ggplot的代码替换基本绘图函数时,我无法得到我以前得到的10个绘图的ggplot输出。上面的底图代码现在被以下代码所取代
p1 <- ggplot(data=data, aes(x=data[,1],y=data[,2]))
p1 <- p1+geom_point()
p1
我在这里丢失了一些非常简单的东西。
VJ
如果有什么你犯了一个层面的情节及编织品是什么? – 2012-07-11 16:12:21
不!只要它在功能内部,它就不会被打印。另外,我只是测试了qplot()产生所需的输出,而ggplot没有。我不能打印在函数内生成的ggplot对象,除了使用ggsave()将其另存为pdf – 2012-07-11 16:35:50
在'for'语句或函数内部,你需要明确地print'ggplot2对象,所以试试'print(p1)'。 – kohske 2012-07-11 16:53:16