如何在 PDF RMarkdown 文档中循环动态渲染绘图?

问题描述 投票:0回答:1

我正在尝试在 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() 打印图而不是调用它们对我来说根本不起作用。

r loops pdf plotly r-markdown
1个回答
0
投票

我很久以前就偶然发现了这个错误。请尝试用

for
替换
lapply(plot_list, print)
循环。

© www.soinside.com 2019 - 2024. All rights reserved.