【问题标题】:Highchart plugin not accepting array for series data?Highchart 插件不接受系列数据的数组?
【发布时间】:2013-01-09 22:29:32
【问题描述】:

我一直在玩 highchart 插件,它真的很棒。直到我尝试制作饼图。

由于某种原因,饼图要求给定系列的数据格式为

 data:[ 
       ["NAME", VALUE],
       ["NAME", VALUE],
       ["NAME", VALUE]
      ]

其中名称是字符串,值是整数或浮点数。所以我在 jquery 中创建了一个数组。但是,当我运行脚本时,页面上没有显示任何内容。当我将数据硬编码到插件中时,它可以工作。但是,当我尝试使用数组时,我却没有。我在 firebug 中检查了控制台,我可以看到数组在那里并且格式正确。我不知道为什么 Highcharts 插件没有看到它。

这是我的代码,也许我遗漏了什么?

var dataarray = [];
var referaltype = dataset.referals[month];
$.each(referaltype.code, function(key, value) {
    var wantvalue = parseInt(referaltype.number[key]);
    var wantkey = value;
    dataarray[wantkey] = wantvalue;
    delete dataarray[key];
});
console.log(dataarray);
makepiechart(dataarray, month, year);

这是我构建要在插件中使用的数组的地方。数据看起来与我预期的差不多。 “名称”:值

这是插件

function makepiechart(dataarray,month,year){
    chart = new Highcharts.Chart({
        chart: {
            renderTo: 'piechartcontainer',
            plotBackgroundColor: null,
            plotBorderWidth: null,
            plotShadow: false
        },
        title: {
            text: 'Type of referals '+month
        },
        tooltip: {
            pointFormat: '{series.name}: <b>{point.percentage}%</b>',
            percentageDecimals: 1
        },
        plotOptions: {
            pie: {
                allowPointSelect: true,
                cursor: 'pointer',
                dataLabels: {
                    enabled: true,
                    color: '#000000',
                    connectorColor: '#000000',
                    formatter: function() {
                        return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %';
                    }
                }
            }
        },
        series: [{
            type: 'pie',
            //name: ,
            data: [dataarray]
        }]
    });
}

但是当插件被调用时什么也没有发生。我也不完全确定为什么。有没有人知道我做错了什么?

【问题讨论】:

    标签: jquery plugins highcharts


    【解决方案1】:

    我发现我做错了什么。 series 选项需要一个字符串而不是一个数组:-P

        var datastring = "";
        var referaltype = dataset.referals[month];
        $.each(referaltype.code, function(key, value) {
            var wantvalue = parseInt(referaltype.number[key]);
            var wantkey = value;
            datastring += "['"+wantkey+"',"+wantvalue+"]";
        });
        console.log(dataarray);
        makepiechart(dataarray, month, year);
    

    【讨论】:

    • 干得好! :) 我在想我必须在数组中创建一个数组,但是创建一个字符串并将其传递给插件要容易得多!谢谢:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    相关资源
    最近更新 更多