使datalabels格式化为没有切片的饼

时间:2015-05-07 09:09:59

标签: javascript highcharts

我尝试使用 Highcharts 构建一个饼图,但我对选项 dataLabels 格式化程序有疑问。

我有 json

[
{"name":"libelle","data":["TROUILLE","BEARN"]},
{"name":"Nombre","data":[12,24]}
]

我想要标签:

BEARN : 66,66 %

所以,我试着写这个:

dataLabels: {enabled: true,
formatter: function() {return '<b>'+ this.y +'</b>: '+ Highcharts.numberFormat(this.percentage, 2) +' %';}}

我的结果:

Slice : 66,66 %

我对百分比没有问题,但是访问 libelle 系列时遇到问题。

我该怎么做?

感谢您的帮助。

地理-X

1 个答案:

答案 0 :(得分:0)

您需要从JSON合并数据,或更改JSON。所以有两种可能的解决方案:

1)将JSON更改为格式:

[{
  "y":12,
  "name":"TROUILLE"
}, { 
  "y":24,
  "name":"BEARN"
}]

2)在JS中合并数据:http://jsfiddle.net/zwb5toe9/1/

var data = [],
    json = [{
    "name": "libelle",
        "data": ["TROUILLE", "BEARN"]
}, {
    "name": "Nombre",
        "data": [12, 24]
}];

$.each(json[1].data, function(i, e) { //loop over "Nombre"
    data.push({
        y: e,
        name: json[0].data[i]
    });
});

$('#container').highcharts({
    plotOptions: {
        pie: {
            dataLabels: {
                enabled: true,
                formatter: function () {
                    return '<b>' + this.key + '</b>: ' + Highcharts.numberFormat(this.percentage, 2) + ' %';
                }
            }
        }
    },
    series: [{
        type: 'pie',
        name: 'Browser share',
        data: data
    }]
});