Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Highcharts:显示峰值_Javascript_Json_Highcharts - Fatal编程技术网

Javascript Highcharts:显示峰值

Javascript Highcharts:显示峰值,javascript,json,highcharts,Javascript,Json,Highcharts,我想在我的Highcharts图表上显示两点之间的差异。只有当它是一个主要的“峰值”差异时 下面是一个“静态”示例: $(function () { $('#container').highcharts({ chart: { type: 'areaspline' }, series: [{ data: [560,500,476,453,356,{

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

下面是一个“静态”示例:

$(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]
        }]
    });
});  

如何将所有点值与上一个点值进行比较

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

我们的目标是创建一个干净的json文件,其中只包含javascript计算的值和峰值


有可能吗?

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

例如,
formatter
函数是():


其中,
PEAKDIFF
是在显示标签之前希望差值达到的值。如果您希望同时显示较大的负数下降,您也可以使用
Math.abs

感谢Ondkloss,我将尝试并发布结果。此答案假设之前的
x
值为
x-1
,这不一定是正确的例如,查找索引更安全,如
this.series.data.indexOf(this.point)-1
。对于非常大的系列,连续查找点将是性能杀手,因此可能最好将索引缓存在point对象本身中。
if(prevValue > 200) {
  displayDataLabel();
}
function displayDataLabel() {
   peak = this.datalabel - prev.datalabel;
   return peak;
}
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;
}