求助:使用R highcharter绘制带散点的多列柱状图
修正Highcharts多列柱状图添加散点系列的错误
你的代码中添加散点系列的问题主要有两点:
targets向量长度(2个元素)与x轴类别数量(3个年份)不匹配,导致散点无法正确对应所有年份- 没有明确指定散点对应的x轴位置,Highcharts无法自动匹配到正确的年份
修正后的完整代码
tb_to_chart <- data.frame(A = c(3, 4, 2), B = c(4, 2, 3) ) # 调整targets长度与x轴类别一致,为每个年份设置对应目标值(可根据实际需求修改) targets <- c(1, 3, 2) row.names(tb_to_chart) <- c("2022", "2023", "2024") chart <- highchart() %>% hc_chart(type = "column") %>% hc_xAxis(categories = row.names(tb_to_chart)) for(i in 1:ncol(tb_to_chart)){ chart <- chart %>% hc_add_series(tb_to_chart[,i], name = names(tb_to_chart)[i]) } # 正确添加散点系列:明确指定每个散点的x轴索引和y值 chart <- chart %>% hc_add_series( type = "scatter", name = "target", color = "red", # Highcharts的x轴索引从0开始,所以用x-1对应年份的位置 data = lapply(1:length(targets), function(idx) list(x = idx - 1, y = targets[idx])) ) chart
关键修正说明
- 匹配长度:确保
targets的元素数量和x轴的年份数量一致,这样每个年份都能对应一个目标散点 - 指定位置:通过
data参数传递包含x(轴索引)和y(目标值)的列表,让散点精准定位到对应年份的上方
内容的提问来源于stack exchange,提问作者Shen
相关产品推荐
相关产品推荐

