【问题标题】:Multiple Plot outputs from a function in rmarkdownrmarkdown中函数的多个绘图输出
【发布时间】:2021-02-27 21:26:49
【问题描述】:

我有一个生成 2 个图表对象的函数,我想在一个 rmarkdown 文件中使用这个函数并将它编织起来,以便获得一个 HTML 报告。我面临的问题是,当我使用这个函数时,我得到的输出看起来像这样:

这里的“Plot1”和“Plot2”是实际渲染的图。我需要进行哪些更改才能获得以下内容?

情节1 情节2

这是我的 R-markdown 文件中的代码块。

```{r OverallGRP106_trended_fav, echo=FALSE, fig.align="center", message=FALSE, warning=FALSE, paged.print=TRUE}
trended_fav(psc_surv,"Overall","GRP106")
```

trend_fav函数的返回语句如下:

return(list(plot(p4), plot(p1)))

【问题讨论】:

    标签: r ggplot2 r-markdown


    【解决方案1】:

    我想如果你把函数的输出分配给一个变量然后单独调用变量的元素就可以了,像这样:

    ---
    output: html_document
    ---
    
    ```{r setup, include=FALSE}
    library(ggplot2)
    trended_fav <- function() {
      p4 <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
      p1 <- ggplot(txhousing, aes(year, median)) + geom_point()
      plot_list <- list(p4,p1)
      return(plot_list)
    }
    a <- trended_fav()
    ```
    
    ## First report
    
    Here it is:
    
    ```{r}
    a[1]
    ```
    
    ## Second report
    
    This one is even better:
    
    ```{r}
    a[2]
    ```
    

    【讨论】:

    • 我不想采用这种方法的原因是我创建了这些图表的 rmarkdown 文件 ~ 100 次,为 4 个绘图中的每一个单独调用该函数只会占用很多的时间。 Diven tat 我的函数能够一次生成所有 4 个图,我希望该函数只被调用一次。
    • a[1] 指的是 a 的第一个元素,它是在第一个块中创建的。
    • 更多建议请看这里:tjmahr.com/lists-knitr-secret-weapon
    • 在这个小插图中查看mdchunk 的用法:hbiostat.org/R/Hmisc/markov。这使用了新版本的Hmisc 包,该包正在提交给CRANmdchunk 的代码位于 github.com/harrelfe/Hmisc/blob/master/R/html.s
    猜你喜欢
    • 1970-01-01
    • 2017-08-30
    • 2018-08-29
    • 2017-01-28
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多