如何从多个本地json文件生成highcharts图表

时间:2013-12-16 03:44:39

标签: javascript json highcharts local-storage

我正在尝试使用来自多个本地保存的json文件的数据构建一个高图条形图,并且遇到一些麻烦。为简单起见,我想循环遍历所有文件,搜索特定字符串并使用count作为图表的数据。我这样做了:

options.series[0].name = 'Test';
options.series[0].data = [];

//Loop over the different local files and do a search count in each  
var localfiles = new Array('localfile1.json', 'localfile2.json');

for (var i=0; i<locfiles.length; i++) {
    //do a count here
    $.getJSON(localfiles[i], function(data) {
    var count = 0;
    var index = 0;
    var entry;
    for (index = 0; index < data.length; ++index) {
        entry = data[index];
        if (entry.searchkey == "searchstring") {
            count ++;
        }
        options.series[0].data.push(count);
    });
});

var chart = new Highcharts.Chart(options);

我意识到我没有正确地传递选项数组。但我不知道我应该用这种方式编写代码。有什么建议吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

要获得2个柱,你需要将options.series[0].data.push(count);置于第二个循环之外,否则你最终将会有很多成长的栏杆

options.series[0].name = 'Test';
options.series[0].data = [];

//Loop over the different local files and do a search count in each  
var localfiles = new Array('localfile1.json', 'localfile2.json');

for (var i=0; i<locfiles.length; i++) {
    //do a count here
    $.getJSON(localfiles[i], function(data) {
    var count = 0;
    var index = 0;
    var entry;
    for (index = 0; index < data.length; ++index) {
        entry = data[index];
        if (entry.searchkey == "searchstring") {
            count ++;
        }
    });
    options.series[0].data.push(count);
});

var chart = new Highcharts.Chart(options);

这样你就可以为每个json文件获得1个小时

回答你的评论

您可以使用addSeries

     var series1 = {
                        data: [],
                        name: ""
                   }
     chart.addSeries(series1);

如果你想删除所有以前的系列,你可以这样做

while(chart.series.length > 0){
    chart.series[0].remove(true);
}