Highcharts:显示峰值

时间:2015-03-17 08:13:43

标签: javascript json highcharts

我想在Highcharts图表上显示2点之间的差异。只有当它是一个主要的“峰值”差异时。

这是一个“静态”示例:

enter image description here

$(function () {
    $('#container').highcharts({
        chart: {
            type: 'areaspline'
        },
        series: [{
            data:   [560,500,476,453,356,{
                        y: 590,
                        dataLabels: {
                            enabled: true,
                            formatter: function () {return '+243';}
                        } 
                    },497,478,465,465,465,410,398]
        }]
    });
});  

http://jsfiddle.net/vr1a61wy/

如何将所有点值与之前的值进行比较?

例如,类似的东西(不是“真实的代码”)

if(prevValue > 200) {
  displayDataLabel();
}
function displayDataLabel() {
   peak = this.datalabel - prev.datalabel;
   return peak;
}

目标是只有一个干净的json文件,其中包含由javascript计算的值和峰值。

有可能吗?

1 个答案:

答案 0 :(得分:1)

您可以使用plotOptions.series.dataLabels.formatter进行此比较。要进行比较,您将使用this.xthis.ythis.series来查找上一点。

示例formatter函数将是(JSFiddle):

formatter: function() {
    if(this.x > 0 && this.y - this.series.data[this.x-1].y >= PEAKDIFF) {
        return "+" + (this.y - this.series.data[this.x-1].y);
    }
    return null;
}

PEAKDIFF是您希望显示标签前的差异的值。如果你想要显示大的负滴,你也会对Math.abs做同样的事情。