1

我已经搜索和搜索,但我无法找到解决方案。

我正在尝试使用我的服务器中的 json 将数据加载到 Highcharts 中。这是从我的服务器返回的 json:

   [{
    "x": "\/Date(1352674800000)\/",
        "y": 621
}, {
    "x": "\/Date(1352761200000)\/",
        "y": 646
}, {
    "x": "\/Date(1352847600000)\/",
        "y": 690
}, {
    "x": "\/Date(1352934000000)\/",
        "y": 688
}, {
    "x": "\/Date(1353020400000)\/",
        "y": 499
}]

这是我的高图:(来自我的 jsfiddle)

    var seriesData = [];
for (var i = 0; i < data.length; i++) {
   var dateString = data[i].x;
var x = dateString.replace(/\/Date\((\d+)\)\//, '$1');


    var y = data[i].y;


    seriesData.push([x, y]);

}
alert(seriesData);

var options = {
    chart: {
        renderTo: 'container'
    },
    xAxis: {        
        type: 'datetime',
        labels: {
            formatter: function() {
            var monthStr = Highcharts.dateFormat('%a', this.value);
            var firstLetter = monthStr.substring(0, 1);
            return firstLetter;
            }
        }
    },



    series: []
};

function myfunk() {
   options.series.push(seriesData);



    chart = new Highcharts.Chart(options);
}
myfunk();

但我的数据没有显示。

我做了一个jsfiddel:http: //jsfiddle.net/grVFk/12105/

编辑:

现在它正在工作,但数据点是否显示错误的日期?http://jsfiddle.net/dxCHB/18/

如果有人可以帮助我,我将不胜感激!:)

4

2 回答 2

2

你非常亲近。系列数组需要包含一个具有数据成员的对象:

 series: [
    {
       data:[]
    }
 ]

然后,您可以使用以下方法进行设置:

function myfunk() {
    options.series[0].data = seriesData;

我修改了你的 jsfiddle:http: //jsfiddle.net/dxCHB/

用数字格式化您的日期

seriesData.push([x/1, y]);
于 2013-03-09T13:33:30.510 回答
0

您的数据应该是数字,因此您可以使用 parseFloat() 函数将字符串转换为数字。

于 2013-03-12T12:15:05.117 回答