javascript — пирамидальная диаграмма Highcharts не отображает данные с помощью JSON, переполнение стека

При использовании JSON с пирамидальной диаграммой в Highcharts я не получаю никаких ошибок в журнале консоли, но данные не отображаются.

У меня есть charts.php, какой результат это:

{"success":1,"data":[{"name":"John Spoon","data":300}, {"name":"Dave Jones","data":200},{"name":"Other","data":500}]}

Это то, что я пробовал, который не возвращает данных.

<div id="chart"  style=
"height:600px;width:100%;"></div>

<script>
$(function () {
$("#chart").html("Loading Activity Log Graph...");

var options = {
chart: {
type: 'pyramid',
renderTo: 'chart',
marginRight: 100
},
title: {
text: 'Activity',
x: -50
},
plotOptions: {
series: {
dataLabels: {
enabled: true,
format: '<b>{point.name}</b> ({point.y:,.0f})',
color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black',
softConnector: true
}
}
},
legend: {
enabled: false
},
name: 'Activity Count',
series: [{}]
};

$.ajax({
url: "charts.php",
type:'post',
dataType: "json",
success: function(data){
options.series = data.data;
var chart = new Highcharts.Chart(options);
}
});

});
</script>

Это мой желаемый результат, показывающий без использования JSON:
http://jsfiddle.net/0dyy44hz/

Что мне нужно изменить, чтобы показывать данные?

0

Решение

Глядя на пример пирамиды, данные должны быть в виде одной серии с каждой точкой данных в виде массива [name, value], У вас есть два варианта: изменить ваш PHP для вывода в правильном формате или изменить вывод PHP в javascript. Поскольку вы не опубликовали свой код PHP, я сделаю позже:

var data = {"success":1,"data":[{"name":"John Spoon","data":300}, {"name":"Dave Jones","data":200},{"name":"Other","data":500}]};

options.series = [{
data: $.map(data.data, function(i){ // loop outputted data
return [[i.name, i.data]]; // coerce into an array of [name,value]
})
}];

Вот рабочая пример.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]