gpt4 book ai didi

javascript - 无法获得系列 Highcharts

转载 作者:行者123 更新时间:2023-11-29 21:29:40 25 4
gpt4 key购买 nike

我正在使用 highcharts 制作包含多个系列 (19) 的图表。我希望每个系列都有多个点,所以这样做是为了用第一组数据创建第一个系列,然后向每个系列添加点:

 $(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
defaultSeriesType: 'line',
events: {
load: function() {
var rawArray = <%- dataArray %>;
var array = {};
var chart = this;
for (var i = 0; i < rawArray.length; i++) {
var entry = rawArray[i];
var str = entry.timestamp.toString();
var time = str.slice(0, -3);
var array = [
[parseInt(time), entry.price]
];
if (i < 18) {
$('#container').highcharts().addSeries({
name: entry.name,
id: entry.id,
data: array
});
} else {
$('#container').highcharts().series[entry.id].addPoint(array, false, true);
}
}
}
}
},
title: {
text: 'Title'
},
xAxis: {
type: 'datetime',
tickPixelInterval: 150
},
yAxis: {
minPadding: 0.2,
maxPadding: 0.2,
title: {
text: 'Value',
margin: 80
}
}
});
});

因此前 19 个系列添加得很好,但随后在我的控制台中出现了这条消息:'Uncaught TypeError: Cannot read property 'addPoint' of undefined' reffering to the $('#container').highcharts() .series[entry.id].addPoint(array, false, true);

我想知道你们是否为我提供了解决方案,我们将不胜感激!

最佳答案

尝试https://jsfiddle.net/Cuchu/99x477sb/5/

 for (var i = 0; i < rawArray.length; i++) {
var entry = rawArray[i];
var id = entry.id;
var str = entry.timestamp.toString();
var time = str.slice(0, -3);
var array = [[parseInt(time), entry.price]];
var array_to_point = [parseInt(time), entry.price];
console.log(array);
if (i < 18) {
$('#container').highcharts().addSeries({
name: entry.name,
id: entry.id,
data: array
});
} else {
$.each(this.series, function(i, v){
serieId = chart.series[i].options.id;
if(serieId == id) {
chart.series[i].addPoint(array_to_point,false);
}

//chart.series[i].addPoint(series[serieId], false);
});
//console.log(this.series);
//$('#container').highcharts().series[id].addPoint(array, false, true);
//$('#container').highcharts().get(entry.name).addPoint(array, false, true);

}
}
this.redraw(true);

我的英语比较基础,但我尽量解释清楚。当您设置 id: entry.id 时,serie 的 id 在 chart.series[i].options.id 中定义,i 不是 id,因为它是系列图中的索引。

var array = [[parseInt(time), entry.price]];
var array_to_point = [parseInt(time), entry.price];

在第一次运行数组中定义数据 serie = array(points) where points = array(time, value).. 好吗?然后在addpoint中,修改为向数据添加点arra_to_point = [time,value]..

最后,重绘图表..

我用 Highcharts 做过很多工作,总是需要查看元素的内容才能把握脉搏

关于javascript - 无法获得系列 Highcharts ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36706317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com