【问题标题】:Highcharts displaying blank spaceHighcharts 显示空白
【发布时间】:2017-05-29 12:09:40
【问题描述】:

我使用 highcharts 来表示销售额/年图表。这里我使用java发送json数据如下:

            String query2 = "SELECT YEAR, SALES FROM ABC";
            PreparedStatement ps2 = conn1.prepareStatement(query2);
            ResultSet rs = ps2.executeQuery();
            while (rs.next()) {
                JSONObject ja = new JSONObject();
                ja.put("YEAR", rs.getInt("YEAR"));
                ja.put("AMOUNT", rs.getDouble("SALES"));
                array.add(ja);
            }
            out.print(array);

JS:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
 <script src="http://code.highcharts.com/highcharts.js"></script>
 <script src="http://code.highcharts.com/modules/exporting.js"></script>

<script>
    $(document).ready(function() {
     $.ajax({
        url: 'sales_data',
        type: 'GET',
        async: true,
        dataType: "json",
        success: function (data) {
          visitorData (data);
        }
      });
     });
    function visitorData (data) {
         $.each(data, function (i, point) {
        point.y = point.data;
    });
       var chart = new Highcharts.Chart({

        chart: {
            renderTo: 'container',
            type: 'pie'
        },

        series: [{
            data: data
        }]

    });
     }
</script>

HTML:

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

收到的 JSON 数据为:

[{"YEAR":2011,"AMOUNT":7.68525076717E7},{"YEAR":2011,"AMOUNT":7982475.0849},{"YEAR":2012,"AMOUNT":8.95886875056E7},{"YEAR":2012,"AMOUNT":1.20452902934E7},{"YEAR":2016,"AMOUNT":5.48889823418E7},{"YEAR":2016,"AMOUNT":6435465.2701},{"YEAR":2017,"AMOUNT":1.09271367417E7},{"YEAR":2017,"AMOUNT":1551705.2601}]

我遵循的例子:http://jsfiddle.net/highcharts/uTyZk/

但输出是:要导出的标题和选项。不生成图表。任何人都可以在这方面给我建议吗?

【问题讨论】:

    标签: javascript jquery json highcharts


    【解决方案1】:

    您可以尝试这样,根据 highcharts 更新接收到的 JSON 数据以填充图表。在您的情况下,JSON 数据缺少 name 和 y 键

    Fiddle Demo

    var data=[{"YEAR":2011,"AMOUNT":7.68525076717E7},{"YEAR":2011,"AMOUNT":7982475.0849},{"YEAR":2012,"AMOUNT":8.95886875056E7},{"YEAR":2012,"AMOUNT":1.20452902934E7},{"YEAR":2016,"AMOUNT":5.48889823418E7},{"YEAR":2016,"AMOUNT":6435465.2701},{"YEAR":2017,"AMOUNT":1.09271367417E7},{"YEAR":2017,"AMOUNT":1551705.2601}]
    // Highcharts requires the y option to be set
    $.each(data, function (i, point) {
        point.y = point.AMOUNT;
        point.name = point.YEAR;
    });
    

    【讨论】:

    • 又好又快。 +1
    • @techhunter 您必须更新 sql 查询并将 group by 添加到其中。因为重复的岁月即将到来
    • 实际上我在这里使用了一个示例查询。实际查询不同
    • 好的,继续
    猜你喜欢
    • 2013-10-07
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-19
    • 2020-10-07
    • 2019-03-26
    相关资源
    最近更新 更多