/ Vytvorenie pie chart pomocou PHP pre vytvorenie

Vytvorenie pie chartu pomocou PHP na vytvorenie json - php, json, laravel, grafy, highcharts

Pokúšam sa vytvoriť koláčový graf v jednom(Laravel MVC) vytvorením štruktúry poľa v PHP potom, keď je prenesená do pohľadu pomocou json_encode, aby bola kompatibilná, ale môj koláčový graf je celý zdvihnutý.

Moje údaje

gender | total
Female | 20
Male | 17
Other | 3

Mám toto:

$chartArray["chart"] = array("plotBackgroundColor" => "null", "plotBorderWidth" => "null", "plotShadow" => "false");
$chartArray["title"] = array("text" => "Pet Intakes By Gender");
$chartArray["tooltip"] = array("pointFormat" => "{series.name}: {point.percentage:.1f}%");
$chartArray["plotOptions"] = array("pie" => array("allowPointSelect"=>"true","cursor"=>"pointer","dataLabels"=>array("enabled" => "false"),"showInLegend" => "true"));
$data = [];
foreach($results as $result){
$data = $this->array_push_assoc($data, $result->gender, $result->total);
}
$chartArray["series"] = array(array("type" => "pie", "name" => "Percentage of Gender", "data" =>array($data)));

return $chartArray;

ktorý produkuje toto pri zakódovaní:

{
"chart":{
"plotBackgroundColor":"null",
"plotBorderWidth":"null",
"plotShadow":"false"
},
"title":{
"text":"Pet Intakes By Gender"
},
"tooltip":{
"pointFormat":"{series.name}: {point.percentage:.1f}%"
},
"plotOptions":{
"pie":{
"allowPointSelect":"true",
"cursor":"pointer",
"dataLabels":{
"enabled":"false"
},
"showInLegend":"true"
}
},
"series":[
{
"type":"pie",
"name":"Percentage of Gender",
"data":[
{
"Female":17,
"Male":12,
"Other":2
}
]
}
]
}

A musím sa dostať na niečo podobné (z príkladu miesta):

{
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false
},
title: {
text: "Browser market shares at a specific website, 2014"
},
tooltip: {
pointFormat: "{series.name}: <b>{point.percentage:.1f}%</b>"
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: "pointer",
dataLabels: {
enabled: false
},
showInLegend: true
}
},
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]
]
}]
});

Čo mi chýba? Vďaka!

odpovede:

0 pre odpoveď č. 1

Váš formát údajov je nesprávny:

     "data":[
{
"Female":17,
"Male":12,
"Other":2
}
]

To znamená, že máte len jeden kus, bez akejkoľvek hodnoty.

Myslím, že to je to, čo chcete urobiť:

     "data":[
["Female", 17],
["Male", 12],
["Other", 2]
]