2013-04-23 15 views
0

您好,我從csv文件獲取數據,並在圖表上使用'this.update(0)'來更新通過點擊鼠標的任何點,因此使得該點在y軸上等於0,但是我想要的是,當我點擊一個點時,它首先獲得該點的索引,然後再次從相同的csv文件重新加載數據,但是這次數據值不應該超出索引。例如,如果我點擊x = 10處的一個點,那麼我應該能夠重新從文件重新加載數據直到x = 9,並將新加載的數據存儲到數組中。如何使用Highcharts獲取圖表中更新點的索引以及如何重新加載數據直至該索引

這是我的代碼的一部分,其中數據必須重新加載。它重新加載了所有不需要的數據,這可能是我沒有得到正確的索引,或者如果有其他問題有幫助。謝謝。

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); 
}); 

回答

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(); 
+0

我不明白的地方會這個命令將存儲我的索引'this.series.processedXData.indexOf(this.x)',因爲在我的if條件下,x是我試圖用this.x得到的變量,所以在你的情況下應該是var x = this.series.processedXData.indexOf(this.x); ..... Ps我想同時獲取索引和更新值。我該如何 去做? – Maria 2013-04-23 13:12:00

+0

它不符合要求,因爲我的新/重新加載的圖形包含位於更新點左側的點。我不希望這些點顯示在更新點的右側。 – Maria 2013-04-23 13:22:36