有很多人都在询问如何在highcharts的pie 饼状图内显示百分比,通过不断琢磨最后得出了一个结论,只需要简单配置即可实现这样一个需求。
完整核心代码如下所示:
$(function () {
var chart;
//加载highcharts图表
$(document).ready(function () {
// Build the chart
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',//装载容器id
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
title: {
text: 'highcharts饼图实现图例(Legend)的显示'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage}%</b>',
percentageDecimals: 1 //百分比保留小数
},
plotOptions: {
pie: {
allowPointSelect: true, //选中某块区域是否允许分离
cursor: 'pointer',
dataLabels: {
enabled: true //是否直接呈现数据 也就是外围显示数据与否
},
showInLegend: true
}
},
legend: {
layout: 'vertical',
backgroundColor: '#FFFFFF',
floating: true,
align: 'left',
verticalAlign: 'top',
x: 90,
y: 45,
labelFormatter: function () {
return this.name + '('+this.percentage+'%)';
}
},
series: [{
type: 'pie',
name: 'Browser share',
data: [
['Firefox', 45.0],
['IE', 26.8],
{
name: 'Chrome',
y: 12.8,
sliced: true,
selected: true
},
['Safari', 8.5],
['Opera', 6.2],
['Others', 0.7]
]
}]
});
});
});
重中之重:
主要是需要在Legend标签内对其显示名称进行格式化:
legend: {
layout: 'vertical',
backgroundColor: '#FFFFFF',
floating: true,
align: 'left',
verticalAlign: 'top',
x: 90,
y: 45,
labelFormatter: function () {
return this.name + '('+this.percentage+'%)';//在名称后面追加百分比数据
}
},