Shiny App 中两个图形的 rCharts 大小不同

rCharts different sizes for the two graphs in Shiny App

我尝试在我闪亮的应用程序中包含两个不同大小的图表(rCharts、highcharts),但是当我将输入更改为第一个图表时,它立即采用第二个图表的大小。

最近几天我试图找到答案,但没有成功。 一个类似的问题,但没有答案:this 还有一个:this

讨论 here 中的信息对我不起作用。虽然也许我在某些地方犯了错误。

这是一个最小的例子:

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
  })
})

图表正确显示是如何实现的。

又过了一天,我自己找到了答案。 希望对其他人有帮助。

在代码中,应替换以下行:

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

收件人:

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

而且有效。