花了一个多小时来查看有关海图的教程以及此处的帖子,我无法获得数据链接。我有一个非常简单的MYSQL请求来获取日期和值,如下所示:


  “ userChart”:[{“ eDate”:“ 2015-02-03”,“ usLevel”:“ 2”},{“ eDate”:“ 2015-03-11”,“ usLevel”:“ 5”},{ “ eDate”:“ 2015-03-25”,“ usLevel”:“ 8”}]


这是我使用的代码,基于此处的另一篇文章:

      var chart;

    var options = {
        chart: {
            type: 'line'
        },
        title: {
            x: -20 //center
        },
        subtitle: {
            text: '',
            x: -20
        },
        xAxis: {
            categories: []
        },
        yAxis: {
            title: {
            },
            plotLines: [{
                value: 0,
                width: 1,
                color: '#808080'
            }]
        },

        legend: {
            layout: 'vertical',
            align: 'right',
            verticalAlign: 'top',
            x: -10,
            y: 100,
            borderWidth: 0
        },
        series: []
    }

    // and create the chart
    // chart 1
    options.chart.renderTo = 'container';
    options.title.text = 'Historical Data';
    options.yAxis.title.text = 'Stage';


    // push the data to the series
    $.each(data, function(key, va) {
        options.xAxis.categories = va[0];
        options.series.push(parseFloat(va[1]));
    })


    // create the first chart
    chart = new Highcharts.Chart(options);


这是输出:


我很困惑,这本来就很简单,但是我只是不明白。如果有人可以指出我要去哪里,我将非常感激。

谢谢

更新:

console.log(data)


看起来像这样:

最佳答案

我认为使用这段代码时会出错

$.each(data, function(key, va) {
    options.xAxis.categories = va[0];
    options.series.push(parseFloat(va[1]));
})


我认为va是一个对象,而不是示例中的数组。

尝试将va用作对象:

var dataSeries = {data: []};
data.forEach(function (va) {
    options.xAxis.categories.push(va.eDate);
    dataSeries.data.push(parseFloat(va.usLevel));
})
// And assign the correct format to highcharts series
options.series.push(dataSeries);


JSfiddle

09-18 00:06