使用动态json系列(HighCharts)自定义饼图中的系列数据

时间:2014-03-20 16:05:21

标签: highcharts pie-chart

我对Highcharts相当新。我有一个饼图,使用动态数据(JSON字符串)可以很好地呈现。但我想自定义某些切片要切片:true和Selected:True。我不知道该怎么做。请找到我的代码,如下所示

<div id="container_${page_id}" style="min-width: 310px; height: 400px; margin: 0 auto;"></div>




var series = [];
var total = 0;
$.each(data, function(index, value) {
            series.push([value.statisticData+'_'+value.sizes,parseInt(value.sizes)]);
            console.log("statisticData",value.statisticData);
            console.log("value.sizes",value.sizes);
            total += parseInt(value.count);
        });


        var chartSessionStatus = new Highcharts.Chart({
            chart: {
                renderTo: $("#container_"+testSessionPageId).get(0),                        
                plotBackgroundColor: null,
                plotBorderWidth: null,
                plotShadow: false
            },
            exporting: {
                enabled: true,
                buttons: {
                    contextButton: {
                        menuItems: [{
                            text: 'Statistics',
                        }]
                    }}
                },

            tooltip: {
                formatter: function() {
                    return this.point.name.split('_')[0] + ': <b>'+this.y+'</b>';
                }
            },
            title: {
                text: '<h4 style="font-style: bold">Tenant Statistics</h4>'
            },
            legend: {
                    labelFormatter: function() {
                        return this.name.split('_')[0] + ' (' + this.y+')';
               }
            },

            plotOptions: {
                pie: {
                    allowPointSelect: true,
                    cursor: 'pointer',
                    dataLabels: {
                        enabled: true,
                        distance: 0,
                        useHTML: true,
                        formatter: function() {
                            if( this.y > 0)
                                return '<b>'+this.point.name.split('_')[0] +'('+ this.y +')</b>';
                        }
                    },
                    showInLegend: true,
                    size: 150
                }
            },
            series: [{
                type: 'pie',
                name: 'Tenant Statistics',
                data: series
            }]
        });

    });

主要关注点,在本系列中,我可以选择数据作为“数据:系列”,但我想自定义本系列中的某些切片。但由于数据是动态的,我不知道如何只使用json字符串的某些部分 我收到的Json格式如下:

[{“statisticData”:“Tests Created”,“sizes”:“3”},{“statisticData”:“Students”,“sizes”:“2”},{“statisticData”:“Users”, “尺寸”: “7”},{ “statisticData”: “学校”, “尺寸”: “10”}]

非常感谢任何帮助!提前致谢。

1 个答案:

答案 0 :(得分:1)

获取json后,您可以解析它/添加切片参数,然后在highcharts中使用。所以不要推动:series.push([value.statisticData+'_'+value.sizes,parseInt(value.sizes)]);

你可以推送类似的东西:

series.push({
        name: value.statisticData+'_'+value.sizes,
        y: parseInt(value.sizes),
        sliced: true,
        selected: true
});