2011-08-26 33 views
1

使用带有堆叠法线的面积图进行绘图时出现问题。我在这里问最后一个问题是:Highcharts help - Area chart stackingHighcharts - 需要高级工具提示功能

这基本上是问如何绘制值堆栈而不规范化的数据。我被告知可以从另一个系列中减去一个系列以使图形正确显示,但是,由于此计算,悬停时的值会发生偏斜。

举例: 前:

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,但我无法使用共享,因为我拥有的所有系列的tooltip太大。

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

回答

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); 

当然你可以使用的非调整值总。

+0

我已经考虑过了,感谢片段,但是我有16个系列,每个系列都包含100个点,计算x和y超出了我的技能水平。任何其他想法? – user877756

+0

我正在做这样的事情,散点图有近10,000点。它工作得非常好。至于计算'x'和'y',你不需要像素或任何东西字面计算它们。在一个简单的情况下,只需将'x'设置为数组的索引并将'y'设置为数组的值。 – Larsenal

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; 
     } 
    }, 
});