我可以使用 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 解决方案,但也欢迎其他解决方案。
最佳答案
我玩了一下,找到了解决方案。您必须使用 print
在 asis
内代码块...
```{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/