javascript - Highchart 不显示图表 : error adding javascript array in series

标签 javascript highcharts

我正在使用 Highcharts 中的条形图绘制人口信息。我使用 Ajax 调用获取数据并将它们存储在数组中

 $(document).ready(function(){
        var url = 'zone.php';
        var zone_name = [];
        var male_pop = [];
        var female_pop = [];
        $.getJSON(url, function(data) {
            $.each(data, function(index, data) {
                zone_name.push(data.name);
                male_pop.push(parseInt(data.pop_male));
                female_pop.push(parseInt(data.pop_female));
            });
        });

当我使用这些数据绘制图表时,图表不显示。

$('#chart').highcharts({
            chart: {
                type: 'bar'
            },
            title: {
                text: 'Popolution of Nepal zone wise'
            },
            subtitle: {
                text: 'Source: cbs.gov.np'
            },
            xAxis: {
                categories: zone_name,
                title: {
                    text: null
                }
            },
            yAxis: {
                min: 0,
                title: {
                    text: 'Population',
                    align: 'high'
                },
                labels: {
                    overflow: 'justify'
                }
            },
            tooltip: {
                valueSuffix: ''
            },
            plotOptions: {
                bar: {
                    dataLabels: {
                        enabled: true
                    }
                }
            },
            legend: {
                layout: 'vertical',
                align: 'right',
                verticalAlign: 'top',
                x: -100,
                y: 100,
                floating: true,
                borderWidth: 1,
                backgroundColor: '#FFFFFF',
                shadow: true
            },
            credits: {
                enabled: false
            },
            series: [{
                name: 'Male Population',
                data: male_pop
            }, {
                name: 'Female Population',
                data: female_pop
            }, {
                name: 'Total Population',
                data:  male_pop
            }]
        });
        });

错误出现在series部分。分配data:male_pop 不起作用。我怎样才能克服这个错误?

编辑:控制台上male_pop数组的输​​出是

0: 676960
1: 1122885
2: 990638
3: 1401822
4: 1939350
5: 1500452
6: 706243
7: 1344568
8: 241786
9: 195827
10: 831283
11: 679340
12: 754277
13: 463610

最佳答案

我猜问题是由于 $.getJSON 的异步性质造成的,当您之后调用: $('#chart').highcharts({ )服务器的响应尚未到达。尝试将其更改为:

$.getJSON(url, function(data) {
            $.each(data, function(index, data) {
                zone_name.push(data.name);
                male_pop.push(parseInt(data.pop_male));
                female_pop.push(parseInt(data.pop_female));
            });

        //    $('#chart').highcharts({
        });

关于javascript - Highchart 不显示图表 : error adding javascript array in series,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17724040/

相关文章:

javascript - 使用 javaScript 打印 toDataURL 图像

javascript - 两个字符串中名称较长的条形图

javascript - 为什么我的 3 个 Highcharts 饼图/图表中只显示了 2 个

javascript - Highcharts 分组列,隐藏在工具提示中

Javascript 模块模式问题

javascript - 正则表达式将 'cause and ' til 等单词中包含的直引号转换为弯引号

r - R 中 Highcharter 中的两个 y 轴

highcharts - Highcharts : Bubble heading is not showing if two bubbles intersect or comes near one another in Bubble chart

javascript - 使 JS 对象从 typeof ="object"变为 typeof ="undefined"

javascript - Highcharts 日期不准确