0

您好,我正在从 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);
});  
4

1 回答 1

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();
于 2013-04-23T10:16:27.767 回答