Я предполагаю, что вы хотите, чтобы ваша кнопка "Скачать заговор" оставалась на заданном месте?
Самое простое решение, о котором я могу подумать, - это просто переместить downloadButton
вверх по главной панели следующим образом:
library(shiny)
ui <- fluidPage(
titlePanel(
sidebarLayout(
sidebarPanel(
wellPanel(h3("Feed the parameters below"))),
mainPanel(
downloadButton(outputId = "download_plot", label = "Download plot"), # This
# is where I moved it to
tabsetPanel(
tabPanel(
h4("plot"),
plotOutput(outputId = "plot")
# This is where the code-snippet used to be
))))))
server <- function(input, output){
plot_input <- reactive({
df <- ChickWeight
p <- ggplot(data=df, aes(x=Time, y=weight, color=Diet, group=Chick)) + geom_line()
})
output$plot <- renderPlot({
print(plot_input())}, width = 1200, height = 800)}
output$download_plot <- downloadHandler(
filename = function() { paste0("plot_", Sys.Date(), ".png") },
content = function(file) {
device <- function(..., width, height) {
grDevices::png(..., height = 20, res = 300, units = "cm")}
ggsave(file, plot = plot_input(), device = device)
})
shinyApp(ui = ui, server = server)
Вывод (кнопка «Загрузить» остается над сюжетом):