Javascript 为不带切片的饼图生成datalabels格式化程序
我尝试用高图表构建饼图,但是数据标签和格式化程序有问题 我有一个json:Javascript 为不带切片的饼图生成datalabels格式化程序,javascript,highcharts,Javascript,Highcharts,我尝试用高图表构建饼图,但是数据标签和格式化程序有问题 我有一个json: [ {"name":"libelle","data":["TROUILLE","BEARN"]}, {"name":"Nombre","data":[12,24]} ] 我想要标签: BEARN : 66,66 % 所以,我试着写下: dataLabels: {enabled: true, formatter: function() {return '<b>'+ this.y +'</b>:
[
{"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) +' %';}}
我对百分比没有问题,但我在访问libelle系列时遇到了问题
我该怎么做
谢谢你的帮助
Geo-x您需要合并JSON中的数据,或者更改JSON。因此,有两种可能的解决方案: 1) 将JSON更改为以下格式:
[{
"y":12,
"name":"TROUILLE"
}, {
"y":24,
"name":"BEARN"
}]
2) 在JS中合并数据:
var数据=[],
json=[{
“姓名”:“诽谤”,
“数据”:[“TROUILLE”、“BEARN”]
}, {
“名称”:“名称”,
“数据”:[12,24]
}];
$.each(json[1]。数据,函数(i,e){//在“Nombre”上循环
数据推送({
y:e,
名称:json[0]。数据[i]
});
});
$(“#容器”)。高图({
打印选项:{
馅饼:{
数据标签:{
启用:对,
格式化程序:函数(){
返回“+this.key+”:“+Highcharts.numberFormat(this.percentage,2)+'%”;
}
}
}
},
系列:[{
键入“pie”,
名称:“浏览器共享”,
数据:数据
}]
});
感谢您对Pawel的帮助。问题是,这是我第三次更改json格式,因为我一直对此有问题,无论是标签还是图形。上次我在本教程中使用了json格式:[link]()。所以你确认我不可能用这种json格式来获取libelle的值?好吧,但你指的是xAxis(类似于线性轴)的教程。同时,您正在使用饼图,饼图中没有xAxis;)另外,正如我上面所说的,您不必更改格式,只需使用第二种解决方案。是的,我认为这是一个好主意!我理解你说的,但我希望所有图形只有一种json格式:-)。非常感谢你,祝你今天愉快!
[{
"y":12,
"name":"TROUILLE"
}, {
"y":24,
"name":"BEARN"
}]
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
}]
});