我正在尝试在 RMarkdown pdf 文档中创建一系列绘图,然后在循环中动态渲染它们。但是,我遇到一个问题,当我使用循环时,绘图不会显示。当我在单独的代码块中单独索引每个图时,图会按预期呈现。但是,当我尝试使用循环渲染绘图时,没有显示任何绘图。
这是一个最小的工作示例:
---
title: "Test loop plot"
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(plotly)
library(datasets)
```
```{r prepare plots}
plot1 <- plot_ly(data = mtcars, x = ~wt, y = ~mpg, type = "scatter", mode = "markers")
plot2 <- plot_ly(data = mtcars, x = ~hp, y = ~mpg, type = "scatter", mode = "markers")
plot3 <- plot_ly(data = mtcars, x = ~qsec, y = ~mpg, type = "scatter", mode = "markers")
# there are many more plots here in my application
plot_list <- list(plot1, plot2, plot3)
```
```{r distinct indexing}
# this works and produces the output as expected
plot_list[[1]]
plot_list[[2]]
plot_list[[3]]
```
```{r dynamic indexing}
# this does not work and produces no output
for (plot in plot_list) {
plot
}
```
如何解决此问题并在循环内动态渲染绘图?任何帮助,将不胜感激。谢谢!
我尝试遵循 this 指南,但它似乎仅适用于 HTML 输出。
我已经尝试按照here的说明安装 webshot 包,但我也没有得到输出。
用 print() 打印图而不是调用它们对我来说根本不起作用。
我很久以前就偶然发现了这个错误。请尝试用
for
替换 lapply(plot_list, print)
循环。