Динамическое изменение размера графика в flexdashboard через sliderInput - PullRequest
0 голосов
/ 23 сентября 2019

Я хотел бы отобразить график во flexdashboard и предоставить shiny::sliderInput для высоты и ширины графика, чтобы динамически изменить его размер.В блестящем это может быть достигнуто с помощью shiny::observe:

ui <- shiny::fluidPage(

  shiny::fluidRow(
    shiny::column(3,
                  shiny::sliderInput("height", label = h3("Plot height"), min = 100,
                                     max = 3000, value = 1000)),

    shiny::column(3,
                  shiny::sliderInput("width", label = h3("Plot width"), min = 100,
                                     max = 3000, value = 1000))

  ),

  shiny::plotOutput("some_plot")
)


# Define server logic ----
server <- function(input, output) {


  shiny::observe({

    output$some_plot <- shiny::renderPlot({

      plot(1:3, 1:3)

    }, height = as.numeric(input$height), width = as.numeric(input$width))

  })

}

# Run the app ----
shiny::shinyApp(ui = ui, server = server)

Однако, использование того же подхода не работает в flexdashboard, т.е. область графика просто пуста, вероятно, потому что shiny::observe не возвращает графикобъект в правильном формате:

---
title              : "Some dashboard"
date               : "`r format(Sys.time(), '%d %B, %Y')`"
output: 
  flexdashboard::flex_dashboard:
    vertical_layout: scroll
    orientation    : columns
    theme          : cosmo
    source_code    : embed
params:

runtime            : shiny
---

Row {.sidebar}
----------


```{r}

shiny::sliderInput("height", label = h3("Plot height"), min = 100,
                       max = 3000, value = 1000)

shiny::sliderInput("width", label = h3("Plot width"), min = 100,
                       max = 3000, value = 1000)
```


Row
----------

### Some plot

```{r}

shiny::observe({

  shiny::renderPlot({

    plot(1:3, 1:3)

  }, height = as.numeric(input$height), width = as.numeric(input$width))

})

```

Как мне добиться такого динамического изменения размера в flexdashboard?

...