Vij*_*uri 9 r ggplot2 rstudio knitr
我试图在R Studio中使用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
```
Run Code Online (Sandbox Code Playgroud)
那些测试此代码的人请确保将其保存为".Rmd"文件,然后在RStudio工具栏中运行knithtml().上面的代码与我想要的那种html输出完全一致.然而,当我用基于ggplot的代码替换基本绘图功能时,我无法获得knithtml()来生成我之前得到的10个绘图的ggplot输出.上面的基本代码现在由以下代码替换
p1 <- ggplot(data=data, aes(x=data[,1],y=data[,2]))
p1 <- p1+geom_point()
p1
Run Code Online (Sandbox Code Playgroud)
我在这里错过了一些非常简单的事情
VJ
您的代码中存在两个问题:
以下将有效:
**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){
p1 <- ggplot(data=data, aes(x=x,y=y))
p1 <- p1+geom_point()
return(p1)
}
for (i in 1:2){
plot(ex(dat))
}
```
Run Code Online (Sandbox Code Playgroud)