Как скачать графики, сделанные в блестящем приложении (в формате jpeg / png) - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь выяснить, как использовать downloadButton для загрузки графика с блестящим. Пример в пакете демонстрирует downloadButton / downloadHandler для сохранения .pdf. Я собираюсь сделать воспроизводимый пример, основанный на этом.

    output$downloadPlot <- downloadHandler(
    filename = function() {
        "plotname .pdf"
    },

    content = function(file) {
        pdf(file = file,
                width = 12,
                height = 12)
        print(buildPlot())
        dev.off()
    }
)       

1 Ответ

0 голосов
/ 11 мая 2018

Я бы посоветовал вам использовать пакет Highcharter.Таким образом, вам не нужно создавать кнопку загрузки, поскольку в диаграмме есть варианты загрузки в нескольких расширениях.Здесь я приведу пример гистограммы, выбирая экспорт в PNG, SVG, JPEG или PDF.

## Export charts with Highcharter in Shiny

# Load package
library('highcharter')

# UI side
highchartOutput('plot')

# Server side
output$plot <- renderHighchart({

  # Define your data, here I am using Iris dataset as example
  DT <- iris$Sepal.Length 

  # Define export options
  export <- list(
    list(
      text = "PNG",
      onclick = JS("function () {
                   this.exportChart({ type: 'image/png' }); }")
      ),
    list(
      text = "JPEG",
      onclick = JS("function () {
                   this.exportChart({ type: 'image/jpeg' }); }")
      ),
    list(
      text = "SVG",
      onclick = JS("function () {
                   this.exportChart({ type: 'image/svg+xml' }); }")
      ),
    list(
      text = "PDF",
      onclick = JS("function () {
                   this.exportChart({ type: 'application/pdf' }); }")
      )
    )

  # Plot histogram
  hchart(DT,
    type = "area",
    name = colnames(iris[1])
  ) %>%
    hc_exporting(
      enabled = TRUE,
      formAttributes = list(target = "_blank"),
      buttons = list(contextButton = list(
        text = "Export",
        theme = list(fill = "transparent"),
        menuItems = export
      ))
    )
})

Вывод должен выглядеть примерно так: enter image description here

Надеюсь, это поможет.

Владемир.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...