【问题标题】:Manipulating array to add through setData on highcharts操作数组以通过高图上的 setData 添加
【发布时间】:2016-05-06 14:24:45
【问题描述】:

我有以下数据:

var data = {"categories":["GLA Age: 65+"],"series":[{"name":"Hendon","data":[11.98]},{"name":"High Barnet","data":[17.86]},{"name":"Mill Hill","data":[13.73]},{"name":"Oakleigh","data":[17.42]},{"name":"Totteridge","data":[17.76]}]};

我需要“名称”作为类别名称,因此我使用“事件 > 加载”将其应用于 highcharts 代码:

var seriesData = this.series;
var tCategories = [];
for (i = 0; i < seriesData.length; i++) {
    tCategories.push(seriesData[i].name);
}
this.xAxis[0].setCategories(tCategories);

然后我需要将“数据”设置为一个数组,例如

[11.98, 17.86, 13.73, 17.42, 17.76]

我遇到的问题是第一批数据显示在第一个栏中:

此处的示例:http://jsfiddle.net/zidski/13rexxyo/3/

创建新数组的代码 ([11.98, 17.86, 13.73, 17.42, 17.76])

var arrayofArrays = data.series.map(function (item) {
     return JSON.stringify([item.data]);
});

    var seriesString = arrayofArrays;
    seriesString = seriesString;
    var n = JSON.stringify(seriesString).replace(/\[|]|"/g, '');
    var g = '[' + n + ']';
    var h = JSON.stringify(g);

    var seriesC = JSON && JSON.parse(g) || $.parseJSON(g);

    this.series[0].setData(seriesC);

【问题讨论】:

    标签: javascript jquery arrays highcharts


    【解决方案1】:

    如果我理解正确的话,它似乎过于复杂了(尽管你想要的结果并不完全清楚)。

    您可以很容易地遍历 JSON 并返回一个数据数组,而无需使用 stringify 或类似的东西,也不需要加载事件:

    代码:

    var title = rawData.categories[0];
    var chartData = []
    $.each(rawData.series, function(i, node) {
      chartData.push({ 'name': node.name, 'y': node.data[0] })
    });
    

    然后:

    series: [{
        data: chartData
    }]
    

    更新小提琴:

    输出:

    【讨论】:

      猜你喜欢
      • 2021-12-24
      • 2013-04-29
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多