R Shiny中使用Highcharter的hw_grid无法显示图表求助
解决Shiny中highcharter hw_grid图表不显示的问题
问题出在hw_grid()的返回值类型上:它生成的是包含多个Highcharts图表的HTML容器,并非单个Highchart对象,所以用renderHighchart()和highchartOutput()这套针对单个图表的渲染逻辑行不通,得换成动态UI渲染的方式。
修改后的完整代码如下:
library(highcharter) library(shiny) library(shinydashboard) ui <- dashboardPage( dashboardHeader(title = "hw_grid in shiny", titleWidth = 500), dashboardSidebar(width = 150), dashboardBody( # 替换为uiOutput,用于渲染动态生成的HTML内容 uiOutput("distPlot") ) ) server <- function(input, output) { # 替换为renderUI,直接返回hw_grid生成的组件 output$distPlot <- renderUI({ charts <- lapply(1:9, function(x) { hchart(ts(cumsum(rnorm(100)))) }) hw_grid(charts, rowheight = 300) }) } shinyApp(ui = ui, server = server)
关键修改点
- UI层:把
highchartOutput换成uiOutput,因为hw_grid输出的是HTML组合内容,需要通用的UI输出容器来承载 - Server层:把
renderHighchart换成renderUI,直接返回hw_grid生成的HTML组件,让Shiny负责渲染整个容器
这样修改后,多张图表就能在Shiny界面里正常显示了。
内容的提问来源于stack exchange,提问作者Fisseha Berhane
相关产品推荐
相关产品推荐

