2

我最近是使用 JSON 的新手,我无法从 Highcharts 中绘制任何类型的图表。自上周五以来,我一直在网上阅读和阅读,当然,我学到了很多东西,但现在我很绝望。我只想要一个简单的酒吧和一个馅饼!

从我的 php 文件中,Json_encode 打印出这样的内容:

[["January",4],["February",9]]

我认为这是正确的格式,带有“”的字符串和没有它的 int。

这是我正在尝试的代码(我将整个示例放在我发现的某个网络上):

<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Example</title>
    <script src="http://code.highcharts.com/highcharts.js"></script>
    <script src="http://code.highcharts.com/modules/exporting.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">       </script>
    <script type="text/javascript">
    $(document).ready(function() {
        var options = {
            chart: {
                renderTo: 'container',
                type: 'column',
                marginRight: 130,
                marginBottom: 25
            },
            title: {
                text: 'Project Requests',
                x: -20 //center
            },
            subtitle: {
                text: '',
                x: -20
            },
            xAxis: {
                categories: []
            },
            yAxis: {
                title: {
                    text: 'Requests'
                },
                plotLines: [{
                    value: 0,
                    width: 1,
                    color: '#808080'
                }]
            },
            tooltip: {
                formatter: function() {
                        return '<b>'+ this.series.name +'</b><br/>'+
                        this.x +': '+ this.y;
                }
            },
            legend: {
                layout: 'vertical',
                align: 'right',
                verticalAlign: 'top',
                x: -10,
                y: 100,
                borderWidth: 0
            }, {
            series: []
        }

        $.getJSON("myphpname.php", function(json) {
            options.xAxis.categories = json[0]['data'];
            options.series[0] = json[1];
            chart = new Highcharts.Chart(options);
        });
    });
    </script>

</head>
<body>
    <div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
</body>
</html>

谢谢大家!!!

4

2 回答 2

1

对此进行排序的一种方法是分别设置类别和数据:

$(function () {
var options = {
    chart: {
        renderTo: 'container',
        type: 'column'
    },
    xAxis: {
        categories: ["A", "B"]
    },
    series: [{
        data: [
            4,9                
        ]
    }]
};
chart = new Highcharts.Chart(options);

});

您的 getJson 可以返回如下对象:

{
    categories:["January","February"],
    data:[4,9]
}

然后你的javascript可以设置图表选项,如:

options.xAxis.categories = json.categories;
options.series[0] = json.data;
于 2013-11-14T09:16:35.793 回答
0

代码没问题。问题是我使用的是免费服务器。

使用XAMPPlocalhost它可以完美运行!

谢谢大家!

于 2013-11-20T12:31:49.107 回答