我試圖在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