使用堆叠法线的区域图进行绘图时出现问题。我在这里问的最后一个问题是: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,但我不能使用共享,因为工具提示太大了,因为我拥有的所有系列。
如果我不清楚,请提出任何问题,我真的需要一些帮助。
答案 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);
当然,您将使用未调整的总值。