Highcharts - 需要高级工具提示功能

时间:2011-08-26 19:02:57

标签: javascript jquery graph charts highcharts

使用堆叠法线的区域图进行绘图时出现问题。我在这里问的最后一个问题是:Highcharts help - Area chart stacking

这基本上是要求如何在不规范化数据的情况下绘制堆栈值。我被告知我可以从另一个系列中减去一个系列以使图形正确显示,但是,当您悬停时的值因此计算而倾斜。

实施例: 之前:

Series Total:      [0,0,0,1,1,2,3]
Series In-Service: [0,0,0,0,0,1,2]

所以我修复数据来绘制它:

Series Total:      [0,0,0,1,1,1,1]
Series In-Service: [0,0,0,0,0,1,2]

现在它图形正常但工具提示错误,例如最后一个数据点应为:

Series Total:      3
Series In-Service: 2

但它显示:

Series Total:      1
Series In-Service: 2

由于工具提示无法访问其他点,因此无法进行修正计算以显示它。除非我使用shared:true,但我不能使用共享,因为工具提示太大了,因为我拥有的所有系列。

如果我不清楚,请提出任何问题,我真的需要一些帮助。

2 个答案:

答案 0 :(得分:5)

设置系列数据时使用对象列表。您可以向数据点对象添加其他选项,并从工具提示格式化程序访问它。

有关示例,请参阅http://jsfiddle.net/jgdreyes/JvSBk/

var seriesTotal = [
    {x: 0, y: 0, customTooltip: 0},
    {x: 1, y: 0, customTooltip: 0},
    {x: 2, y: 0, customTooltip: 0},
    {x: 3, y: 1, customTooltip: 1},
    {x: 4, y: 1, customTooltip: 1},
    {x: 5, y: 1, customTooltip: 2},
    {x: 6, y: 1, customTooltip: 3}
];

var chart = new Highcharts.Chart({

    series: [
        {data: seriesTotal}
    ],

    tooltip: {
        formatter: function() {
            //access customTooltip option
            return this.point.customTooltip;
        }
    },
});

答案 1 :(得分:1)

虽然可能不是最佳,但我在类似的情况下做了以下几点:

在我的配置中,我设置了工具提示格式化程序以使用点名称。

tooltip: {
  formatter: function() {
    return this.point.name;
  }
}

然后当我添加点数时,我只需使用自定义HTML设置名称,如...

// get x, y and other vars
series[0].addPoint({x: x, y: y, name: 'In Service: ' + inService }, false);
series[1].addPoint({x: x, y: y, name: 'Total: ' + total }, false);

当然,您将使用未调整的总值。