我想在Highcharts图表上显示2点之间的差异。只有当它是一个主要的“峰值”差异时。
这是一个“静态”示例:
$(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]
}]
});
});
如何将所有点值与之前的值进行比较?
例如,类似的东西(不是“真实的代码”)
if(prevValue > 200) {
displayDataLabel();
}
function displayDataLabel() {
peak = this.datalabel - prev.datalabel;
return peak;
}
目标是只有一个干净的json文件,其中包含由javascript计算的值和峰值。
有可能吗?
答案 0 :(得分:1)
您可以使用plotOptions.series.dataLabels.formatter
进行此比较。要进行比较,您将使用this.x
,this.y
和this.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
做同样的事情。