Highcharter不会自动调整shinydashboard的输出大小。

问题描述 投票:2回答:1

开发版 Highcharter包的问题如下。

highchartOutput 不自动调整宽度 的情节 隐藏侧栏时 在shinydashboard中。绘图的宽度始终保持不变。

我在这里提供一个例子。

# install development-version of highcharter
# devtools::install_github("jbkunst/highcharter")

library(shinydashboard)
library(shiny)
library(highcharter)
library(dplyr)

ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody(
    box(
      width = 12,
      highchartOutput("plot")
    )
  )
)

server <- function(input, output) {

  output$plot <- renderHighchart({
    highcharts_demo()
  })
}

shinyApp(ui, server)

sidebar is shown

sidebar is hidden

我试过了

$(document).on("click", ".sidebar-toggle", function() { $(window).trigger("resize"); });

但是,当我使用开发版的highcharter时,它仍然不能工作。renderHighchart &amp。highchartOutput 函数。

然而,我发现

  • renderHighchart2highchartOutput2 在调整大小时工作良好。

  • 但是 renderHighchart2highchartOutput2 不支持热图,我仍然需要使用 renderHighcharthighchartOutput 以获得相关图。

有什么建议可以解决这个调整大小的问题?

r shiny shinydashboard r-highcharter
1个回答
0
投票

在做了更多的研究后,我得到了解决方案。在开发版中 highcharter的代码,修复 highcharter.js 文件,如下所示。

/* fix bug here */
 resize: function(el, width, height, instance) {

   /* http://stackoverflow.com/questions/18445784/ */
   var chart = $("#" +el.id).highcharts();
   var height = chart.renderTo.clientHeight; 
   var width = chart.renderTo.clientWidth; 
   chart.setSize(width, height); 

 }

然后自动调整大小就可以正常工作了。

© www.soinside.com 2019 - 2024. All rights reserved.