该 开发版 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)
我试过了
$(document).on("click", ".sidebar-toggle", function() { $(window).trigger("resize"); });
但是,当我使用开发版的highcharter时,它仍然不能工作。renderHighchart
&amp。highchartOutput
函数。
然而,我发现
renderHighchart2
和 highchartOutput2
在调整大小时工作良好。
但是 renderHighchart2
和 highchartOutput2
不支持热图,我仍然需要使用 renderHighchart
和 highchartOutput
以获得相关图。
有什么建议可以解决这个调整大小的问题?
在做了更多的研究后,我得到了解决方案。在开发版中 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);
}
然后自动调整大小就可以正常工作了。