0
すでにプロットされているggplot
イメージを再変換せずにダウンロードしようとしています。発見したすべてのソリューション(例:Save plots made in a shiny app)は、画像をダウンロードするときに再びフィギュアを作成する関数を呼び出します。 回避策はありますか?私のイメージは非常に複雑で、作成には時間がかかります。R shinyで再プロットせずにプロットをダウンロード
すでにプロットされているggplot
イメージを再変換せずにダウンロードしようとしています。発見したすべてのソリューション(例:Save plots made in a shiny app)は、画像をダウンロードするときに再びフィギュアを作成する関数を呼び出します。 回避策はありますか?私のイメージは非常に複雑で、作成には時間がかかります。R shinyで再プロットせずにプロットをダウンロード
はggplot2::last_plot
機能を使用します。
library(shiny)
library(ggplot2)
k <- 0
runApp(list(
ui = fluidPage(
plotOutput("fooplot"),
textOutput("fook"),
downloadButton('foo')
),
server = function(input, output) {
plotInput = function() {
k <<- k + 1
qplot(speed, dist, data = cars)
}
output$fooplot <- renderPlot({
plotInput()
})
output$fook <- renderPrint({
k
})
output$foo = downloadHandler(
filename = 'test.png',
content = function(file) {
device <- function(..., width, height) {
grDevices::png(..., width = width, height = height,
res = 300, units = "in")
}
ggsave("myplot.png", plot = last_plot(), device = device)
})
}
))
はちょうどplotInput
が二度呼ばれていないことを示すために含め、グローバルアサインメントの使用を許して。