You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Highcharts年份柱状散点图中计算并绘制年度平均线?

问题描述

我用Highcharts绘制了以年份为柱体、不同Run为散点的图表,已经通过pointPlacement参数完成柱体位置设置,代码如下:

series: [
{
    name: "Run 1",
    type: "scatter",
    data: scatterData1,     
    pointPlacement: -0.1
    },
    {
    name: "Run 2",
    type: "scatter",
    data: scatterData2,
    pointPlacement: 0   
    },
    {
    name: "Run 3",
    type: "scatter",
    data: scatterData3,
    pointPlacement: 0.1 
    }
]

当前图表运行正常,现在需要为每个年份添加一条代表该年份各Run数据平均值的连线(连接各年份的均值点),预期效果是红色线连接红色均值点,请问该如何实现?

实现方案

1. 计算各年份的平均值数据

先基于现有三个Run的数据集,遍历每个年份,计算对应年份下三个Run数据的平均值,生成平均值数组。假设三个散点数据集的结构都是[[年份1, 值1], [年份2, 值2], ...],代码示例如下:

// 生成平均值数组
const averageData = scatterData1.map((item, index) => {
  const year = item[0];
  const avgValue = (item[1] + scatterData2[index][1] + scatterData3[index][1]) / 3;
  return [year, avgValue];
});

2. 添加平均值连线系列

在原有的series数组中新增一个line类型的系列,使用刚才计算的平均值数据,同时设置样式和位置对齐:

{
  name: "平均值",
  type: "line",
  data: averageData,
  color: "#ff0000", // 设置连线为红色
  marker: {
    fillColor: "#ff0000", // 均值点填充色
    radius: 4 // 调整均值点大小
  },
  pointPlacement: 0, // 对齐年份柱体的中心位置
  tooltip: {
    pointFormat: "平均值: {point.y}"
  }
}

3. 整合完整代码

将新的平均值系列添加到原series数组末尾,最终的series配置如下:

series: [
  {
    name: "Run 1",
    type: "scatter",
    data: scatterData1,     
    pointPlacement: -0.1
  },
  {
    name: "Run 2",
    type: "scatter",
    data: scatterData2,
    pointPlacement: 0   
  },
  {
    name: "Run 3",
    type: "scatter",
    data: scatterData3,
    pointPlacement: 0.1 
  },
  {
    name: "平均值",
    type: "line",
    data: averageData,
    color: "#ff0000",
    marker: {
      fillColor: "#ff0000",
      radius: 4
    },
    pointPlacement: 0,
    tooltip: {
      pointFormat: "平均值: {point.y}"
    }
  }
]

内容的提问来源于stack exchange,提问作者vegaelce

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 01:38:25