我目前有一个工作的highcharts折线图(版本 6.0.3 )。我有多个系列,我正在进行实时更新。我希望添加注释到点,由ID链接,跟随点我动态添加更多。例如,我将它添加到指向索引3,并且当我添加更多时,注释向左移动,其中点在数组[3]处。
我目前遇到的问题是动态添加注释。以下是我的图表选项设置方式:
function createTrendTool() {
_trendToolChart = Highcharts.chart('trendToolContainer', {
chart: {
type: 'spline',
zoomType: 'x',
panning: true,
panKey: 'shift'
},
tooltip: {
formatter: function () {
var unit = this.series.userOptions.Unit;
if (unit) { unit = ' ' + unit; }
var s = '<b>' + this.series.name + '</b>';
s += '<br/>' + moment(this.x).format('MMM D YYYY HH:mm:ss') +
'<br/>' + this.y + unit;
return s;
}
},
annotations: [{
labelOptions: {
backgroundColor: 'rgba(255,255,255,0.5)',
verticalAlign: 'top',
y: 15
},
labels:[]
}],
title: {
text: 'Trending Signals'
},
credits: false,
yAxis: {
title: {
text: 'Values'
}
},
xAxis: {
title: {
text: 'Time'
},
type: 'datetime'
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'middle'
},
plotOptions: {
series: {
label: {
connectorAllowed: true
}
}
},
responsive: {
rules: [{
condition: {
},
chartOptions: {
legend: {
layout: 'horizontal',
align: 'center',
verticalAlign: 'bottom'
}
}
}]
}
});
_trendToolChart.showLoading("Loading...");
}
图表设置没有任何问题。在从我的API检索数据时,我想动态添加注释,所以我从我的图表中获取该系列,然后尝试添加注释:
function addAnnotationToChartPoint(point, annotationText) {
_trendToolChart.addAnnotation({
linkedTo: point.Id,
title: annotationText
});
}
point.Id是一个guid,annotationText是一个字符串。
但是当我调用该函数时,我得到了这个错误:
TypeError:_trendToolChart.addAnnotation不是函数 在addAnnotationToChartPoint(.js:865)
我可以看到图表上的选项和userOptions数组中列出的注释,但该功能不存在。我需要先设置一些东西吗?
答案 0 :(得分:1)
嗯,最简单的(最愚蠢的)答案通常是正确的答案。似乎我的注释js文件没有包含在我的html中。添加了这一行,我很高兴:
<script src="../Scripts/HighCharts/highcharts.js"></script>