我被迫输出不在静态设备中的多个图。但是我使用renderPlot在Shiny中动态创建了可变数量的绘图。我可以使用renderPlot中的函数pdf()为每个设备成功创建单独的pdf文件。
我已尝试制作here和其他类似文章中指定的多页pdf文件。但是,以我为例,创建的pdf文件的内容已损坏(大小为7 kb),无法打开。简化后的代码如下。
for (PlotI in 1:PlotN)
{
poObject <- plotOutput(outputId = PlotI)
insertUI(selector = '#AnyPlaceHolder', where = "beforeBegin",
ui = poObject, multiple = FALSE, immediate = FALSE)
} # for PlotI
fnPDF <- paste0(tempdir(), '\\', 'plot.pdf')
pdf(file = fnPDF, width = 7, height = 4, onefile = TRUE, title = 'R output',
paper = 'a4', pointsize = 1/PlotResolution, compress = TRUE)
for (PlotI in 1:PlotN)
{
local(
{
PlotJ <- PlotI
output[[PlotJ]] <- renderPlot(
{
opar <- par(no.readonly = TRUE)
par(mar = c(2,4,2,0.5))
plot(AnyTimeSeries[[PlotJ]])
par(opar)
}
) # renderPlot
}
) # local
} # for PlotI
dev.off()
怎么了?