R语言Highcharter加载Arc Diagram模块失败求助
解决Highcharter加载Arc Diagram模块失败的问题
错误原因分析
hc_add_dependency参数使用错误:你之前将模块路径直接写在name参数中,highcharter会尝试从本地资源路径查找文件,而非Highcharts官方CDN,因此出现GET请求404错误。- 模块加载顺序错误:之前在head中添加script标签时,Highcharts主库尚未完成加载,导致Arc Diagram模块无法找到依赖的Highcharts对象,初始化失败。
两种可行解决方案
方案1:调整UI中模块加载顺序
将Arc Diagram模块的script标签放在图表输出组件之后,确保主库先加载完成:
library(shiny) library(highcharter) library(tidyverse) library(htmlwidgets) # 示例数据 ex <- data.frame( source = c("A", "A", "B", "B", "C", "D", "D", "E"), target = c("B", "C", "C", "D", "D", "E", "F", "F"), value = c(10, 20, 15, 25, 10, 5, 20, 15) ) ui <- fluidPage( # 先渲染图表输出,确保主库加载 highchartOutput("achart", width = "100%", height = "50%"), # 后加载Arc Diagram模块 tags$script(src = "https://code.highcharts.com/modules/arc-diagram.js") ) server <- function(input, output) { output$achart <- renderHighchart({ hchart( ex, "arcdiagram", hcaes( from = source, to = target, weight = value ) ) %>% hc_chart(height = "80%") }) } shinyApp(ui = ui, server = server)
方案2:正确使用hc_add_dependency
通过指定模块的CDN路径和文件名,让highcharter自动管理依赖加载顺序:
library(shiny) library(highcharter) library(tidyverse) library(htmlwidgets) # 示例数据 ex <- data.frame( source = c("A", "A", "B", "B", "C", "D", "D", "E"), target = c("B", "C", "C", "D", "D", "E", "F", "F"), value = c(10, 20, 15, 25, 10, 5, 20, 15) ) ui <- fluidPage( highchartOutput("achart", width = "100%", height = "50%") ) server <- function(input, output) { output$achart <- renderHighchart({ hchart( ex, "arcdiagram", hcaes( from = source, to = target, weight = value ) ) %>% hc_chart(height = "80%") %>% # 正确配置模块依赖参数 hc_add_dependency( name = "arc-diagram", src = list(href = "https://code.highcharts.com/modules/"), script = "arc-diagram.js" ) }) } shinyApp(ui = ui, server = server)
内容的提问来源于stack exchange,提问作者anorlondo
相关产品推荐
相关产品推荐

