как загрузить несколько графиков в виде zip-файла в R shiny? - PullRequest
0 голосов
/ 28 мая 2020

Я реализую R shiny с функцией загрузки нескольких графиков в формате png. В настоящее время я использую формат pdf, который может содержать несколько графиков в одном файле. Однако я предпочитаю сохранять каждый отдельный сюжет как * .png и загружать их вместе в виде zip-файла в заранее заданный каталог. Я проверил много онлайн-ресурсов, но не могу понять. Ниже представлен код R для загрузки графиков в формате pdf. Спасибо за помощь.

# download plot
 output$downloadPlot <- downloadHandler(

   # specify the file name
   filename=function(){
     paste0("individualPlots_", input$username, "_", Sys.Date(), ".pdf")
   },
   content=function(file){

     pdf(file, width=8, height=8)

     xrange <- c(as.numeric(input$threshold.start), as.numeric(input$threshold.end))
     for(i in 1:nrow(summary_output())){

       yrange <- c(0, ymax()[i]) 
       plot(yfit()[[i]] ~ datsub.x()[[i]], 
            col = "red", pch = 2,  
            xlim = xrange, ylim = yrange,
            xlab = "time (s)", ylab = "response (nm)", cex.lab = 1.5,
            main = substr(file.name()[i], 1, nchar(as.character(file.name()[i])) - 8), cex.main = 1.5)

       points(datsub.y()[[i]] ~ datsub.x()[[i]], pch = 20)

       legend("bottomright", c("fitted", "true"), col = c("red", "black"), 
              xpd = TRUE, horiz = TRUE, inset = c(-0.05, -0.15), pch = c(2, 20), bty = 'n', cex = 1.5)

       legend("top", c(paste0("kd = ", b.est()[i], " (1/s)"),
                       paste0("RMSE = ", y_rmse()[i])), 
              xpd = TRUE, horiz = TRUE, inset = c(-0.05, -0.065), bty = 'n', cex = 1.5)
     }
     dev.off()
   })
...