如何从highchart

时间:2016-03-02 17:55:05

标签: javascript jquery json highcharts

我正在尝试从json文件中获取图表数据。一次使用它,以便从高级图表文档中复制它。但它没有用。

JSON:

[ 
              { "name"  : "Asia", "data" :[4502, 635, 809, 947, 1402, 3634, 5268] },
              { "name"  : "Africa", "data" : [106, 107, 111, 133, 221, 767, 1766] },
              { "name"  : "Europe",    "data" : [163, 203, 276, 408, 547, 729, 628] },
              { "name"  : "America",    "data" : [18, 31, 54, 156, 339, 818, 1201] },
              {"name"  : "Oceania",    "data" : [2, 2, 2, 6, 13, 30, 46] }
            ]

脚本:

<script>
$(function () {
    var options = {
        chart: {
            renderTo: 'container',
            type: 'spline'
        },
        title: {
            text: 'Historic and Estimated Worldwide Population Growth by Region'
        },
        subtitle: {
            text: 'Source: Wikipedia.org'
        },
        xAxis: {
            categories: ['1750', '1800', '1850', '1900', '1950', '1999', '2050'],
            tickmarkPlacement: 'on',
            title: {
                enabled: false
            }
        },
        yAxis: {
            title: {
                text: 'Billions'
            },
            labels: {
                formatter: function () {
                    return this.value / 1000;
                }
            }
        },
        tooltip: {
            shared: true,
            valueSuffix: ' millions'
        },
        plotOptions: {
            area: {
                stacking: 'normal',
                lineColor: '#666666',
                lineWidth: 1,
                marker: {
                    lineWidth: 1,
                    lineColor: '#666666'
                }
            }
        },
        series: [{}]




    };


 $.getJSON('http://s000.tinyupload.com/?file_id=46814948573049842058', function(data) {
        options.series[0].data = data;
        var chart = new Highcharts.Chart(options);
    });
})
</script>

控制台未显示任何错误。任何人都可以看到代码的问题。

1 个答案:

答案 0 :(得分:2)

我无法从我的作品中模仿你的代码,但是,这应该解决它:

  • TinyUpload不允许直接访问data.json。把它 在某个地方你可以。 (OBS:这不是JSON文件,它是一个字符串 描述数组/对象结构,你应该将其转换为 json格式第一);

如果您决定以字符串形式接收它,请执行以下步骤:

  • 收到数据后,请使用Eval() function进行转换 into和array / object,然后将它放入HighChart脚本。

实施例

var string = '['+
              '{ "name"  : "Asia", "data" :[4502, 635, 809, 947, 1402, 3634, 5268] },'+
              '{ "name"  : "Africa", "data" : [106, 107, 111, 133, 221, 767, 1766] },'+
              '{ "name"  : "Europe",    "data" : [163, 203, 276, 408, 547, 729, 628] },'+
              '{ "name"  : "America",    "data" : [18, 31, 54, 156, 339, 818, 1201] },'+
              '{"name"  : "Oceania",    "data" : [2, 2, 2, 6, 13, 30, 46] }'+
            ']';
var yourDataObject = eval(string);

PS: 我认为加载数据的正确方法是:

options.series = data;