Highcharter НЕ автоматически изменяет размер вывода на блестящей панели инструментов

Версия для разработки пакета highcharter имеет следующую проблему:

highchartOutput НЕ изменяет автоматически ширину графика, при скрытии боковой панели на блестящей панели инструментов. Ширина участка всегда остается неизменной.

Я привожу здесь пример,

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

показана боковая панель

боковая панель скрыта

я пытался

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

НО он по-прежнему не работает для highcharter версии для разработки, когда я использую функции renderHighchart & highchartOutput.

Однако я обнаружил

  • renderHighchart2 и highchartOutput2 хорошо подходят для изменения размера.

  • НО renderHighchart2 и highchartOutput2 НЕ поддерживают тепловую карту, мне все равно нужно использовать renderHighchart и highchartOutput, чтобы получить график корреляции.

ЛЮБЫЕ предложения по этой проблеме изменения размера?


person ChenX    schedule 07.06.2020    source источник
comment
Приведенный выше код отлично работает для меня. Я использую R версии 3.6.1, highcharter_0.7.0 shiny_1.4.0 и shinydashboard_0.7.1   -  person Pork Chop    schedule 07.06.2020
comment
Также у меня работает: R 4.0.0, highcharter_0.7.0, shiny_1.4.0.2 и shinydashboard_0.7.1   -  person bretauv    schedule 07.06.2020
comment
Как я уже упоминал выше, разрабатываемая версия highcharter вызовет проблему. В частности, версия highcharter 0.7.0.9001   -  person ChenX    schedule 07.06.2020


Ответы (1)


После дополнительных исследований я нашел решение. В разрабатываемой версии 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); 

 }

Тогда автоматическое изменение размера будет работать соответствующим образом.

person ChenX    schedule 08.06.2020