如果运行以下命令创建HTML文档,则会看到它为三种虹膜种类创建了单独的条形图。
为了在循环中创建的HTML文档中打印此可打印图表列表,您必须将图表存储在列表中,并在循环后运行htmltools行以使其正确显示;您不能只打印(图表)。
但是,我希望它在打印图表之前仅打印物种名称。然后对于下一个相同,依此类推。这样您就可以知道每个图表代表哪个组。
我知道您可以使用plot_ly参数为循环中的每个图表添加标题。但是,我只是将这些条形图用作一个简单的示例。我的实际报告使用了另一个类似的程序包,该程序包没有选择直接在图表中包含标题的选项,但其工作方式相同。这就是为什么我试图弄清楚如何使其简单地打印“ setosa”,然后显示条形图,“ versicolor”,然后显示条形图等的原因。我不确定如何使用htmltools做到这一点。
---
title: "Test"
output: html_document
---
```{r charts, echo=FALSE, message=FALSE}
library("plotly")
charts<-list()
for(i in 1:length(unique(iris$Species))){
iris2<-iris[iris$Species==unique(iris$Species)[i],]
charts[[i]]<-plot_ly(iris2, x = ~Sepal.Length, y = ~Sepal.Width, type = 'bar')
}
htmltools::tagList(charts)
```
您可以制作另一个列表并将文本附加到绘图中。基本思想是以下代码块:
list(tags$h1(unique(iris$Species)[i]),
tags$figure(charts[[i]]))
您可以检查?taglist
和tag$...
的参数以更好地了解此想法的来源。请参阅下面的答案:
---
title: "Test"
output: html_document
---
```{r charts, echo=FALSE, message=FALSE}
library("plotly")
library("htmltools")
charts <- list()
for(i in 1:length(unique(iris$Species))){
iris2 <- iris[iris$Species==unique(iris$Species)[i],]
charts[[i]]<-plot_ly(iris2, x = ~Sepal.Length, y = ~Sepal.Width, type = 'bar')
}
tgls <- list()
for(i in 1:length(unique(iris$Species))){
tgls[[i]] <- list(tags$h1(unique(iris$Species)[i]),
tags$figure(charts[[i]]))
}
tagList(tgls)
```
我不确定为什么您不能使用%>% layout(title="plot title")
。您可能希望共享用于灌封的实际包装,以获得更直接的答案。为了完整起见,我还发布了一个带有plotly
参数的解决方案。
---
title: "Test"
output: html_document
---
```{r charts, echo=FALSE, message=FALSE}
library("plotly")
charts<-list()
for(i in 1:length(unique(iris$Species))){
iris2<-iris[iris$Species==unique(iris$Species)[i],]
charts[[i]]<-plot_ly(iris2, x = ~Sepal.Length, y = ~Sepal.Width, type = 'bar') %>%
layout(title=as.character(unique(iris$Species)[i]))
}
htmltools::tagList(charts)
```