Highcharts json php 多个系列


Highcharts json php multiple series

我有一个简单的问题,但由于某种原因找不到解决方案。如下所述:highcharts文档,我制作了以下脚本:

<script type="text/javascript">
$(document).ready(function() {
    var options = {
            chart: {
                renderTo: 'container',
                type: 'column',
            },
            title: {
                text: 'Dagelijks waterverbruik'
            },
            subtitle: {
                text: 'Waterverbruik in liters'
            },
            xAxis: {
                categories: [
                    'Zondag',
                    'Maanag',
                    'Dinsdag',
                    'Woensdag',
                    'Donderdag',
                    'Vrijdag',
                    'Zaterdag'
                ]
            },
            yAxis: {
                min: 0,
                title: {
                    text: 'Waterverbruik (Liter)'
                }
            },
            plotOptions: {
                column: {
                    pointPadding: 0.2,
                    borderWidth: 0
                }
            },
            series: [{}]
    };
    $.getJSON('testdata.php', function(data) {
        options.series[0].data = data;
        var chart = new Highcharts.Chart(options);
    });
});
</script>

我的测试数据.php如下:

 <?php
header('Content-Type: application/json');
$data[] = array('Zondag',11);
$data[] = array('Maandag',10);
$data[] = array('Dinsdag',9);
$data[] = array('Woensdag',8);
$data[] = array('Donderdag',12);
$data[] = array('Vrijdag',2);
$data[] = array('Zaterdag',18);
$serie1[] = array('name' => 'serie 1', 'data' => $data);
$serie1[] = array('name' => 'serie 2', 'data' => $data);
echo json_encode($serie1);
?>

由于某种原因,图表不会呈现。我做错了什么?一个系列以这种方式工作,但多个系列则不然。

如您所见,我希望两个柱线具有相同的值。测试数据.php的输出为:

[{"name":"serie 1","data":[["Zondag",11],["Maandag",10],["Dinsdag",9],["Woensdag",8],["Donderdag",12],["Vrijdag",2],["Zaterdag",18]]},{"name":"serie 2","data":[["Zondag",11],["Maandag",10],["Dinsdag",9],["Woensdag",8],["Donderdag",12],["Vrijdag",2],["Zaterdag",18]]}]

你这样制作数组,不要在$data数组中使用类别,因为你在图表中使用静态类别。下面是一个提示

$data = array(11,10,9,8,12,81);
$serie1[] = array('name' => 'serie 1', 'data' => $data);
$serie1[] = array('name' => 'serie 2', 'data' => $data);
echo json_encode($serie1);

在这一部分中:

$.getJSON('testdata.php', function(data) {
    options.series[0].data = data;
    var chart = new Highcharts.Chart(options);
});

将其更改为此

$.getJSON('testdata.php', function(data) {
    options.series = data;
    var chart = new Highcharts.Chart(options);
});

当前的代码只能容纳一个系列,因为您为该系列指定了索引,即 [0]。

在 JSON 中,您需要设置JSON_NUMERIC_CHECK标志,因为在您的示例中,您似乎没有数据数字值。