함수 내에서 생성 된 플롯을 인쇄하려고했던 R Studio에서 R-Markdown 기능을 사용하려고합니다. 이것은 내가하려는 일의 기본 실행 예입니다.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 기반 코드로 대체하면 knithtml()을 얻을 수 없기 때문에 전에 얻은 10 개의 플롯의 ggplot 출력을 생성 할 수 있습니다. 위의 기본 플롯 코드가 이제 다음 코드로 바뀝니다.
p1 <- ggplot(data=data, aes(x=data[,1],y=data[,2]))
p1 <- p1+geom_point()
p1
나는 여기 아주 간단한 것을 놓치고 있습니다.
VJ
코드에서 두 가지 문제가 있습니다
당신은 측면 플롯을 만들어 그 니트 경우는 어떻게? –
Nope! 함수 내부에있는 한 인쇄되지 않습니다. 또한 qplot()이 원하는 출력을 생성하는 반면 gplot은 원하는 출력을 생성하는지 테스트했습니다. 함수 안에 생성 된 ggplot 객체를 ggsave()를 사용하여 이외의 외부에서 인쇄 할 수 없습니까? 예 : PDF로 저장 –
'for' 문이나 함수 안에'print' ggplot2 객체가 명시 적으로 필요하므로'print (p1)'을 사용해보십시오. – kohske