如何在ggplot2 / Rmarkdown中跨标签?

时间:2020-04-14 12:00:11

标签: r ggplot2 r-markdown

我知道facet_wrapfacet_grid的方面。对于需要更多空间的更详细的图形,可以轻松切入Rmarkdown tabs

除了将图形的代码复制到每个选项卡中并在每个选项卡中分别过滤facet变量之外,还有一种本机(ggplot2 / Rmarkdown)方法吗?

要从链接的问题中借用示例,所需的输出将是第一个多面图显示“选项卡内容1”,第二个多面图显示第二个选项卡,依此类推(选项卡数与小平面数相同) )

enter image description here

1 个答案:

答案 0 :(得分:4)

您可以通过以下方式制作这些自动标签

---
title: "Untitled"
author: "me"
date: "14 April 2020"
output: html_document
---

```{r}
library(ggplot2)
library(ggforce)
```

## A header {.tabset}

```{r, results='asis'}
n <- 10

# Make main plot
plot <- ggplot(diamonds) +
    geom_point(aes(carat, price), alpha = 0.1) 

# Facet_*_paginate loop over facets
plots <- lapply(seq_len(n), function(i) {
  plot + facet_wrap_paginate(~ cut:clarity, ncol = 1, nrow = 1, page = i)
})

# Print a tab and a plot for each n
# Important to set "results = 'asis'" in chunk options
for (i in seq_len(n)) {
  cat(paste0("\n\n### Tab ", i, "\n"))
  print(plots[[i]])
}
```