闪亮的下载图 - 只获取htm文件(没有png)

时间:2017-07-19 19:00:13

标签: r shiny png

对于我的生活,我无法弄清楚发生了什么。我想在我的应用程序中包含一个下载按钮用于绘图(png文件)。我有以下代码,当我按下下载按钮时,我得到以下弹出“download.htm”。任何人都可以看到错误的位置:

ui.R部分有下载按钮:

tabPanel("BOOKINGS", 
br(), br(),
fluidRow(column(12, "BOOKINGS",
tabsetPanel(
tabPanel("Plot", plotOutput("mcsoPlot")),
tabPanel("Table", dataTableOutput("BOOKINGS")), 
br(),
downloadButton(outputId = "down", label = "Download the plot")

server.R部分与图形和下载按钮相关:

buildplot <- function(){
p <- ggplot(selectedData(), aes(x = MONTH, group = TYPE, color = TYPE)) +
 geom_line(stat = "count", size = 1.5)  
p
}

output$down <- downloadHandler(
filename =  "Shinyplot.png",

content = function(file) {
png(file) # open the png device
buildplot()
dev.off()  # turn the device off

} 
)

如果有人能看到我做错了什么,我真的很感激。感谢。

1 个答案:

答案 0 :(得分:1)

我想出来并希望发布答案,因为我在其他帖子中没有碰到这个,而且有人可能会犯同样的错误。

在ui.R脚本中,下载按钮脚本不能与图表位于相同的fluidRow中。我基本上创建了另一个fluidRow并将下载按钮放在那里。最终的ui.R示例将是:

fluidRow(column(12, "BOOKINGS",
tabsetPanel(
tabPanel("Plot", plotOutput("mcsoPlot")),
tabPanel("Table", dataTableOutput("BOOKINGS")), 
br(),
fluidRow(column(12, "",
downloadButton(outputId = "down", label = "Download the plot")))
))))