首页 > 解决方案 > 在使用 Knitr 的 R 中,如何获得在循环中创建的绘图图表以进行打印?

问题描述

我正在尝试使用 Knitr 创建一个 HTML 文档。我注意到你可以让它毫无问题地打印在循环中创建的常规图。然而,情节图表并不那么简单。例如,我怎样才能让以下工作?

---
title: "Test"
output: html_document
---


```{r charts, echo=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')

}

print(charts)
```

以上不起作用;这些图不会出现在 HTML 文档中。但是,以下内容会:

---
title: "Test"
output: html_document
---


```{r charts, echo=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')

}

charts[[1]]
charts[[2]]
charts[[3]]
```

我只会使用第二个选项,但我事先不知道将在列表中创建多少个图表(可能是 50+),因此告诉它专门打印列表中的第一个,然后是第二个是没有效率的等等,就像你在上面看到的那样。

同样,这些情节/交互类型的 HTML 图表的工作方式与常规图表的工作方式并不完全相同,至少在打印它们时是这样。

标签: rplotlyknitr

解决方案


推荐阅读