我正在尝试使用php文件返回的动态数据渲染饼图(Semi Circle Donut)。
data returned by data.php:
echo json_encode($overview)
output: {"Apple":184,"Mango":105,"Oranges":30,"Grapes":17} (This list is dynamic)
以下是我在jQuery中所做的事情:
$(document).ready(function(){
$('#show').click(function(){
var chart;
var options = {
chart: {
renderTo: 'container',
plotBackgroundColor: null,
plotBorderWidth: 0,
plotShadow: false
},
title: {
text: 'Browser<br>shares<br>2015',
align: 'center',
verticalAlign: 'middle',
y: 40
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
plotOptions: {
pie: {
dataLabels: {
enabled: true,
distance: -50,
style: {
fontWeight: 'bold',
color: 'white',
textShadow: '0px 1px 2px black'
}
},
startAngle: -90,
endAngle: 90,
center: ['50%', '75%']
}
},
series: [{
type: 'pie',
name: 'Browser share',
innerSize: '50%',
}]
}; //var options ends here
$.getJSON("data.php", function(json) {
json = JSON.stringify(json);
options.series[0] = {};
options.series[0].data = json[0]['json'];
chart = new Highcharts.Chart(options);
});
});
});
我试图对此提出各种问题,但没有运气。请建议我缺少什么。
答案 0 :(得分:1)
您的数据应该是数组而不是对象。因此,您需要实现这个数字:
["Apple":184,"Mango":105,"Oranges":30,"Grapes":17]
答案 1 :(得分:0)
您没有使用选项初始化highcharts。
$('#container').highcharts(options)