rCharts разных размеров для двух графиков в приложении Shiny

Я пытаюсь включить в свое блестящее приложение два графика (rCharts, highcharts) разных размеров, но когда я меняю ввод на первый график, он сразу принимает размер второго.

Я пытался найти ответ в последние несколько дней, но безуспешно. Похожий вопрос, но нет ответа: это Еще один: это

Информация в обсуждении здесь мне не подходит. Хотя, возможно, я где-то ошибся.

Вот минимальный пример:

ui:

shinyUI(navbarPage("Test",

      tabPanel("First", 
        sidebarLayout(
          sidebarPanel(
            selectInput("Select", 
              label = "Select", 
              choices = c("First", "Second"))),

            mainPanel(
            showOutput("chart1", "highcharts")

              ))),

      tabPanel("Second", 
        sidebarLayout(
          sidebarPanel(
            selectInput("Select2", 
              label = "Select2", 
              choices = c("First", "Second"))),


            mainPanel(
            showOutput("chart2", "highcharts")

            )))))

сервер:

    require(rCharts)
shinyServer(function(input, output) {  
  output$chart1 <- renderChart2({
    value <- as.character(input$Select)
    x <- data.frame(x = seq(1:6), 
                    y = c(rep("First",times = 3),rep("Second",times = 3)))
    x <- x[x$y == value,]

    a <- rCharts::Highcharts$new()

    a$chart(type = "column")
    a$params$width <- 300
    a$params$height <- 300
    a$data(x)
    a
  }) 
  output$chart2 <- renderChart2({ 
    value <- as.character(input$Select2)
    x2 <- data.frame(x = c(100:105), 
                     y = c(rep("First",times = 3),rep("Second",times = 3)))
    x2 <- x2[x2$y == value,]
    b <- rCharts::Highcharts$new()
    b$chart(type = "column")
    b$data(x2)
    b$params$width <- 1200
    b$params$height <- 600
    b
  })
})

Как достигается правильное отображение графика.


person Peter    schedule 01.05.2015    source источник


Ответы (1)


Еще один день, и я нашел ответ сам. Я надеюсь, что это поможет другим.

В коде следует заменить следующие строки:

a$chart(type = "column")
a$params$width <- 300
a$params$height <- 300

To:

a$chart(type = "column", height = 300, width = 300)

И это работает.

person Peter    schedule 03.05.2015