如何使用Highcharts获取图表中更新点的索引以及如何将数据重新加载到该索引

时间:2013-04-23 01:43:59

标签: php javascript highcharts

您好我从csv文件获取数据并且我在我的图表上使用'this.update(0)'来通过鼠标点击更新任何点,因此在y轴上使该点等于0但是我想要的是当我点击一个点时,它首先得到该点的索引,然后再从同一个csv文件重新加载数据,但这次数据值不应超出索引。例如,如果我点击x = 10处的点,那么我应该能够再次从文件重新加载数据直到x = 9并将新加载的数据存储到数组中。

这是我的代码的一部分,其中必须重新加载数据。它重新加载了不需要的整个数据,这可能是我得不到正确的索引,或者是否有其他问题请帮助。谢谢。

plotOptions: {
series: {
cursor: 'pointer',
point: {
events: {
click: function() {
var x= this.update(0);
$.get('testFile.csv', function(data) {
var lines = data.split('\n');
$.each(lines, function(lineNo, line) {
var items = line.split(',');
var series = {
data: []
};
$.each(items, function(itemNo, item) {
if(itemNo<x){
series.data.push(parseFloat(item)); }   });
options.series.push(series);
});
var chart = new Highcharts.Chart(options);
});  

1 个答案:

答案 0 :(得分:0)

获取索引:this.series.processedXData.indexOf(this.x)

现在,删除创建新图表,而是用值更新每个点,如下所示:

var actSeries = this.series; //needed for scope range

...
... 
...

$.each(items, function(itemNo, item) {
    if(itemNo<x){
        actSeries.data[itemNo].update(parseFloat(item), false);
    });
});
actSeries.chart.redraw();