r - 如何以程序方式将绘图嵌入到 RMarkdown 的选项卡中?

标签 r ggplot2 r-markdown

我可以使用 RMarkdown 的 {.tabset} 嵌入绘图

#### Heading  {.tabset}
##### Subheading 1
```{r, echo=F}
df[[1]]    
```

这会在预览 Pane 中生成带有指定图形的单个选项卡(df 是图形列表,调用 df[[i]] 会生成图形)(在 RStudio 中内联呈现所有图形)。

我可以使用 for 循环只生成选项卡。
```{r, results='asis', echo = FALSE}
for (i in 1:length(gg0)) {
  cat("##### ",q$Subheading[i],"\n")
}
```

这会产生所需的输出 - 具有子标题列中名称的选项卡。

但是,我一直在尝试使用 for 循环自己生成图形,类似于我手动编码时所做的那样。

扩展上述内容,我尝试生成产生初始输出的 Markdown ,但绘图无法生成(在内联 Markdown 和预览中)。
```{r, results='asis', echo = FALSE}
for (i in 1:length(gg0)) {
  cat("##### ",q$Subheading[i],"\n")
    cat('```{r, echo=F} \n')
    cat("gg0[[",i,"]]\n")
    cat('``` \n')
}
```

也许我错过了关于 Markdown 的更好点?我用 cat 尝试了各种模式(甚至没有)

我更喜欢 RMarkdown 解决方案,但也欢迎其他解决方案。

最佳答案

我玩了一下,找到了解决方案。您必须使用 printasis 内代码块...

```{r}
library(ggplot2)
gg0 <- list()
gg0[[1]] <- ggplot(mtcars, aes(mpg, hp)) + geom_point()
gg0[[2]] <- ggplot(mtcars, aes(mpg, disp)) + geom_point()
gg0[[3]] <- ggplot(mtcars, aes(mpg, drat)) + geom_point()

headings <- c('hp','disp','drat')
```

#### Heading  {.tabset}
```{r, results='asis', echo = FALSE}
for (i in 1:length(gg0)) {
  cat("##### ",headings[i],"\n")
  print(gg0[[i]])
  cat('\n\n')
}
```

作为解释,cat命令与 results='asis'为较低级别的标题生成 Markdown 代码,然后打印 ggplot 图。由于我们在父标题中使用了 `{.tabset},它会在单独的选项卡中创建图表。

关于r - 如何以程序方式将绘图嵌入到 RMarkdown 的选项卡中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43636120/

相关文章:

r - 使用 data.table 滞后面板数据

r - ggplot多分组栏

r - 如何删除R中列中的字符?

R IBrokers。如何让货币合约在 reqHistoricalData 调用中发挥作用?例如加元兑美元汇率?而如何拉动指数价格呢?例如标准普尔、道琼斯指数?

r - 无法在 addCircleMarkers 中设置颜色参数

r - 频率表的累积概率图

r - 根据值微移 ggplot 文本

r - 模块化的 R markdown 结构

将 `.Rmd` 帖子渲染为 blogdown 中的幻灯片

r - 提取 .Rmd 文件的 html 依赖项(包含 htmlwidgets)