Propriedades dinâmicas de plotagem brilhante

Eu tenho um gráfico que depende da entrada do usuário. Dependendo da entrada, o tamanho da plotagem será diferente.

Posso controlar dinamicamente a altura da trama? Eu sei que emplotOutput() Eu tenho um argumento de altura, mas não consigo encontrar uma maneira de alterá-lo dinamicamente.

Exemplo reproduzível: quando você escolhe A, o gráfico fica bem, mas se você escolhe B, é muito alto.

library(shiny)
library(ggplot2)

df1 <- data.frame(x = 1:2000, y = rnorm(2000), type = rep(LETTERS[1:8], 250))
df2 <- data.frame(x = 1:100, y = rexp (100), type = rep(c('A','B'), 50))

ui <- shinyUI(fluidPage(title = '',
  fluidRow(selectInput("table",'', choices = c('A','B'))),
  fluidRow(plotOutput("my_plot", height = '1000px'))
  )
)

server <- shinyServer(function(input, output) {
  output$my_plot <- renderPlot({
    t <- if(input$table == 'A') df1
    else df2
    ggplot(t) + facet_grid(type~.) +
      geom_point(mapping = aes(x=x, y=y))
  }
  )
})
shinyApp(ui, server)

Uma última coisa, no aplicativo real, não é que eu tenha 2 tamanhos diferentes, dependendo da entrada que o tamanho precise mudar.

questionAnswers(1)

yourAnswerToTheQuestion