Highcharter 不会自动调整 shinydashboard 中的输出大小
Highcharter is NOT automatically resize output in shinydashboard
highcharter包的development-version存在以下问题:
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"); });
但是当我使用 renderHighchart
和 highchartOutput
函数时,它仍然不适用于开发版 highcharter。
不过,我发现
renderHighchart2
和 highchartOutput2
可以很好地调整大小。
但是 renderHighchart2
和 highchartOutput2
不支持热图,我仍然需要使用 renderHighchart
和 highchartOutput
来获得相关图。
对于这个大小调整问题有什么建议吗?
经过更多研究,我得到了解决方案。在开发版highcharter
中,修改highcharter.js
文件中的代码如下:
/* fix bug here */
resize: function(el, width, height, instance) {
/* */
var chart = $("#" +el.id).highcharts();
var height = chart.renderTo.clientHeight;
var width = chart.renderTo.clientWidth;
chart.setSize(width, height);
}
然后自动调整大小将正常工作。
highcharter包的development-version存在以下问题:
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"); });
但是当我使用 renderHighchart
和 highchartOutput
函数时,它仍然不适用于开发版 highcharter。
不过,我发现
renderHighchart2
和highchartOutput2
可以很好地调整大小。但是
renderHighchart2
和highchartOutput2
不支持热图,我仍然需要使用renderHighchart
和highchartOutput
来获得相关图。
对于这个大小调整问题有什么建议吗?
经过更多研究,我得到了解决方案。在开发版highcharter
中,修改highcharter.js
文件中的代码如下:
/* fix bug here */
resize: function(el, width, height, instance) {
/* */
var chart = $("#" +el.id).highcharts();
var height = chart.renderTo.clientHeight;
var width = chart.renderTo.clientWidth;
chart.setSize(width, height);
}
然后自动调整大小将正常工作。