Скачать все высокие чарты с R блестящие - PullRequest
0 голосов
/ 26 декабря 2018

У меня есть набор диаграмм и несколько таблиц на блестящих страницах.Что было бы лучшим способом создать кнопку загрузки, чтобы позволить пользователю загрузить все из них в один файл (например, PDF).Я попытался grid.arrange, но я не уверен, как преобразовать объекты старшей диаграммы в объекты Grobs.

Примеры выходных данных приведены ниже:

library("shiny")
library("highcharter")

data(citytemp)

ui <- fluidPage(
  fluidRow(

        column(width = 8,
           highchartOutput("hcontainer1",height = "500px")),
        column(width = 8,
                  highchartOutput("hcontainer2",height = "500px")),
        column(width = 8,
               highchartOutput("hcontainer3",height = "500px")),
        column(width = 12,dataTableOutput("table"))
  )
)

server = function(input, output) {

  output$hcontainer1 <- renderHighchart({
    hc <- highcharts_demo() %>%
      hc_rm_series("Berlin") %>% 
      hc_chart(type = "line")
    hc
  })

  output$hcontainer2 <- renderHighchart({
    hc <- highcharts_demo() %>%
      hc_rm_series("Berlin") %>% 
      hc_chart(type = "bar")
    hc
  })

  output$hcontainer3 <- renderHighchart({
    hc <- highcharts_demo() %>%
      hc_rm_series("Berlin") %>% 
      hc_chart(type = "column")
    hc
  })

  output$table <- renderDataTable({
    dt <- data.frame(iris[1:10,])
    dt
  })

}

shinyApp(ui = ui, server = server)

1 Ответ

0 голосов
/ 26 декабря 2018

Просто попробуйте поместить кнопку загрузки в каждом столбце.Я не могу установить highcharter сейчас, поэтому я не полностью протестировал код.Дайте мне знать, если у вас возникли проблемы -

column(width = 8,
           highchartOutput("hcontainer1",height = "500px"), downloadButton("downloadplot1", label = "Download"))

Напишите отдельную функцию для создания графика -

gen_plot <- function(series_name, chart_type){
    hc <- highcharts_demo() %>%
      hc_rm_series(series_name) %>% 
      hc_chart(type = chart_type)
    hc
}

Теперь в server -

output$downloadplot1 <- downloadHandler(filename ="1.png",
                                         content = function(file) {
                                           png(file, width=800, height=800)
                                           gen_plot("Berlin", "line")
                                           dev.off()
                                         },
                                         contentType = "image/png")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...