我是Highcharts和json的新手,我正在使用带有渐变填充的饼图。过去几天我一直面临着从php和mysql中提取json数据以使用Highchart库填充渐变填充饼图的问题。我已经尝试了StackOverflow和Google搜索的所有建议,虽然我无法找到特定的解决方案。我的饼图显示我[object Object]:0.0,没有显示正确的graph.pie图像 < / p>
请告诉我为什么会收到此错误。我的代码在下面。
$(function () {
// Radialize the colors
Highcharts.getOptions().colors = Highcharts.map(Highcharts.getOptions().colors, function(color) {
return {
radialGradient: { cx: 0.5, cy: 0.3, r: 0.7 },
stops: [
[0, color],
[1, Highcharts.Color(color).brighten(-0.3).get('rgb')] // darken
]
};
});
// Build the chart
$('#container').highcharts({
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
title: {
text: ' Rate of a specific project'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}</b>'
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
format: '<b>{point.name}</b>: {point.percentage:.1f}',
style: {
color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
},
connectorColor: 'silver'
}
}
},
series: [{
type: 'pie',
name: 'Total Marketing',
data:[]
}]
});
$.getJSON("data.php", function(data){
//options.series[0].data = json;
chart.series[0].setData(data);
chart = new Highcharts.Chart(options);
});
});
这是 data.php
$sql="SELECT mozila,ie,chrome,opera,safari,torch FROM webmarketing";
$resultSql = mysql_query($sql);
$result = array();
while($rows=mysql_fetch_array($resultSql)) {
$result[] = array('name' => 'MOZILA', 'y' => $rows['mozila']);
$result[] = array('name' => 'IE', 'y' => $rows['ie']);
$result[] = array('name' => 'CHROME', 'y' => $rows['chrome']);
$result[] = array('name' => 'OPERA', 'y' => $rows['opera']);
$result[] = array('name' => 'OTHERS', 'y' => $rows['safari']+$rows['torch']);
}
print json_encode($result, JSON_NUMERIC_CHECK);
json看起来像
[{"name":{"MOZILA":45.0}},{"name":{"IE":26.8}},{"name":{"CHROME":12.8}},{"name": {"OPERA":6.2}},{"name":{"OTHERS":9.2}}]
请给我解决方案。
答案 0 :(得分:1)
根据您的评论,您的JSON是错误的。 Highcharts期望数据看起来像:
[val1, val2, val3,...,valN]
或者
[{"name1", val1},{"name2", val2},{"name3", val3},...,{"nameN", valN}]
或者
[{name: "name1", y: val1},{name: "name2", y: val2},{name: "name3", y: val3},...,{name: "nameN", y: valN}]
您需要调整JSON构建器以输出其中一种格式。对于PIE图表,我建议使用{"name1", val1}
版本。