我错过了这是非常简单的事情,所以希望这应该是一个简单的解决方法。
我在一个plotly
代码块中生成Rmarkdown
个热图列表,然后想要在下一步中将它们嵌入到报告中。
我正在尝试:
---
title: "test"
output: html_document
---
```{r setup, include=FALSE,echo=FALSE}
knitr::opts_chunk$set(echo=FALSE,out.width='1000px',dpi=200,fig.keep="all")
options(width = 1000)
options(knitr.table.format = "html")
suppressPackageStartupMessages(library(dplyr))
suppressPackageStartupMessages(library(plotly))
suppressPackageStartupMessages(library(knitr))
```
```{r heatmaps, include=FALSE,echo=FALSE}
set.seed(1)
heatmaps.list <- vector(mode="list",3)
for (i in 1:3) heatmaps.list[[i]] <- plot_ly(z = matrix(rnorm(10000),100,100), type = "heatmap")
```
```{r plots, include=FALSE,echo=FALSE}
for (i in 1:3){
heatmaps.list[[i]]
cat("\n")
}
```
不幸的是,这不是嵌入热图,尽管它们是在heatmaps
Rmarkdown
代码块中生成的。
如果我尝试使用base
情节似乎有效:
```{r heatmaps, include=FALSE,echo=FALSE}
set.seed(1)
hist.list <- vector(mode="list",3)
for (i in 1:3){
hist.list[[i]] <- hist(rnorm(10000),plot=F)
}
```
```{r plot, warning=FALSE,message=FALSE,echo=FALSE}
for (i in 1:3){
plot(hist.list[[i]])
cat("\n")
}
```
答案 0 :(得分:1)
即使设置更简单,我也会得到同样的错误
---
output: html_document
---
```{r setup}
suppressPackageStartupMessages(library(plotly))
# this works
plot_ly(z = matrix(rnorm(100), 10, 10), type = "heatmap")
# this does not
set.seed(1)
for (i in 1:3)
plot_ly(z = matrix(rnorm(100), 10, 10), type = "heatmap")
```
你想要保存绘图ab objets的事实不是问题,它是循环。 here的答案是使用
htmltools::tagList(as_widget(plot1), as_widget(plot2))
代替。对于我的最小例子,这将是。
---
output: html_document
---
```{r setup}
suppressPackageStartupMessages(library(plotly))
# now it works
set.seed(1)
l <- htmltools::tagList()
for (i in 1:3)
l[[i]] = as_widget(plot_ly(z = matrix(rnorm(100), 10, 10), type = "heatmap") )
l
```
不幸的是,我没有代表重复的代表。