/ Erstellen eines Tortendiagramms mit PHP zum Erstellen von JSON - PHP, JSON, Laravel, Charts, Highcharts

Erstellen eines Tortendiagramms mit PHP zum Erstellen von JSON - PHP, JSON, Laravel, Charts, Highcharts

Ich versuche ein Kreisdiagramm in einem zu erstellenAnwendung (Laravel MVC) durch Erstellen der Array-Struktur in PHP dann, wenn es mit json_encode an die Ansicht übergeben wird, um es kompatibel zu machen, aber mein Tortendiagramm ist aufgebockt.

Mein Datensatz

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

Ich habe das:

$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;

was erzeugt dies wenn codiert:

{
"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
}
]
}
]
}

Und ich muss zu so etwas kommen (aus dem Site-Beispiel):

{
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]
]
}]
});

Was vermisse ich? Vielen Dank!

Antworten:

0 für die Antwort № 1

Ihr Datenformat ist falsch:

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

Das heißt, Sie haben nur eine Scheibe ohne Wert.

Ich denke, das ist was du willst:

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