对于我的生活,我无法弄清楚发生了什么。我想在我的应用程序中包含一个下载按钮用于绘图(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
}
)
如果有人能看到我做错了什么,我真的很感激。感谢。
答案 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")))
))))