如何在Rmarkdown中应用循环中生成的动态图之间添加间距?
这个问题与 @Yihui的回答很好地描述了如何在rmarkdown中创建循环中的动态图。但是,正如您所注意到的,两个图之间没有间距。当有很多的时候,这就变得很难阅读了如何在Rmarkdown中应用循环中生成的动态图之间添加间距?,r,r-markdown,dygraphs,htmlwidgets,R,R Markdown,Dygraphs,Htmlwidgets,这个问题与 @Yihui的回答很好地描述了如何在rmarkdown中创建循环中的动态图。但是,正如您所注意到的,两个图之间没有间距。当有很多的时候,这就变得很难阅读了 ```{r} library(dygraphs) lungDeaths <- cbind(mdeaths, fdeaths) res <- lapply(1:2, function(i) dygraph(lungDeaths[, i])) htmltools::tagList(res) ``` 如果我不想要打印标题
```{r}
library(dygraphs)
lungDeaths <- cbind(mdeaths, fdeaths)
res <- lapply(1:2, function(i) dygraph(lungDeaths[, i]))
htmltools::tagList(res)
```
如果我不想要打印标题,但仍然想要在打印之间分隔,我会传递一个换行符作为标题,如下所示:
```{r}
library(dygraphs)
lungDeaths <- cbind(mdeaths, fdeaths)
res <- lapply(1:2, function(i) {
dygraph(lungDeaths[, i], main = "<br>") %>%
dyOptions(titleHeight = 50) %>%
dyCSS("dygraph.css")
})
htmltools::tagList(res)
```
`{r}
图书馆(动态图)
肺死亡%
动态选项(标题亮度=50)%>%
dyCSS(“dygraph.css”)
})
htmltools::标记列表(res)
```
虽然这确实可以增加间距,但如果可能的话,我宁愿避免使用外部CSS。更不用说,它不允许在绘图之间添加任何其他对象(如文本或水平规则)。有没有办法在函数调用的每次迭代之间手动添加这些对象
编辑:根据下面的答案,我们还可以在每次迭代之间添加一个中断,如下所示:
```{r}
library(dygraphs)
lungDeaths <- cbind(mdeaths, fdeaths)
res <- lapply(1:2, function(i) {
dygraph(lungDeaths[, i])
})
invisible(lapply(1:2, function(i) {
if (!exists("l")) {
l <<- list()
}
l[[i]] <<- htmltools::tags$br()
}))
out <- c(rbind(l, res))
htmltools::tagList(out)
```
`{r}
图书馆(动态图)
lungdeath我对标记列表不太熟悉,但似乎可以将包含附加规则、间距、文本等的标记/标记与动态图列表交错,例如:
space <- list(htmltools::tags$h1("Title"),
htmltools::tags$h2("Header text"))
out <- c(rbind(space, res))
htmltools::tagList(out)
space您可以通过另一个apply或类似调用生成space
列表,具体取决于数据的结构。
```{r}
library(dygraphs)
lungDeaths <- cbind(mdeaths, fdeaths)
res <- lapply(1:2, function(i) {
dygraph(lungDeaths[, i])
})
invisible(lapply(1:2, function(i) {
if (!exists("l")) {
l <<- list()
}
l[[i]] <<- htmltools::tags$br()
}))
out <- c(rbind(l, res))
htmltools::tagList(out)
```
space <- list(htmltools::tags$h1("Title"),
htmltools::tags$h2("Header text"))
out <- c(rbind(space, res))
htmltools::tagList(out)