r语言 - RMarkdown - function with ggplotly



我想使用我的函数test1()在RMarkdown中获取图表。在函数中,我使用cat()函数和ggplotly(),我发现使用cat()是这种情况的主要问题。当我用cat()删除所有代码时,我会得到我想要的(test2()(。 但是对我来说,使用cat()很重要,因为我可以在test1()中创建段落和评论。我在test1()和test_ggplotly中改变了什么灵魂。啪

test_ggplotly。R

library("ggplot2")
library("plotly")
test1<-function(){
cat('n')  
cat("## Chapter 1", "n") 
cat("### Example ", "n") 
cat(" Comment ", "n") 
cat('n') 
p1<-ggplot(mpg, aes(x = displ, y = hwy, color = class)) + geom_point()
ggplotly(p1)
cat('n')   
}

test2<-function(){
p1<-ggplot(mpg, aes(x = displ, y = hwy, color = class)) + geom_point()
ggplotly(p1)
}

test_ggplotly。马币

---
title: "Test"
author: " "
date: "10/14/2019"
output: html_document
---
``* {r setup, include=FALSE,echo=FALSE}
knitr::opts_chunk$set(echo = TRUE)
``
``{R, echo=FALSE}
source("test_ggplotly.R")
``
``
# Test 1
``{r, results='asis', echo=FALSE}
test1()
``
# Test 2
``{r, results='asis', echo=FALSE}
test2()
``
* should be ```

你需要告诉 R 在test1函数中返回什么对象:

test1<-function(){
cat('n')  
cat("## Chapter 1", "n") 
cat("### Example ", "n") 
cat(" Comment ", "n") 
cat('n') 
p1<-ggplot(mpg, aes(x = displ, y = hwy, color = class)) + geom_point()
return( ggplotly(p1) )
cat('n')
}

编辑 16/10/19 : #2 对于 Rmarkdown,我使用列表作为解决方法,这可能是一个特定的问题,以便在这里找到更好的结果。

1 呼召plotly::ggploty()确实被遗忘了。下面的代码应该显示想要的图表。

让我们重新格式化您的问题:

test1<-function(){

library(ggplot2)

for(i in 1:4){
cat('n')
cat("## Chapter ", i, "n") 
cat("### Exampstle ", "n") 
cat(" Comment ", "n") 
cat('n') 

p1 <- ggplot(mpg, aes(x = displ, y = hwy, color = class)) + 
geom_point() + 
ggtitle(paste("Chart nr ", i))

return(p1)

cat('n') 
}
}
test1()

如果只想打印输出,可以使用print而不是返回值:

test1<-function(){

library(ggplot2)
res <- NULL

for(i in 1:4){
cat('n')
cat("## Chapter ", i, "n") 
cat("### Exampstle ", "n") 
cat(" Comment ", "n") 
cat('n') 

p1 <- ggplot(mpg, aes(x = displ, y = hwy, color = class)) + 
geom_point() + 
ggtitle(paste("Chart nr ", i))
p1 <- plotly::ggplotly( p1 )
res[[i]] <-p1 
}
return(res)
}
my_res <- test1()
my_res[[1]]
my_res[[2]]
my_res[[3]]
my_res[[4]]

其他明智的将每次迭代存储在一个列表中,例如稍后调用p1[[i]] = ggplot() ...

相关内容

  • 没有找到相关文章

最新更新