代码之家  ›  专栏  ›  技术社区  ›  oshirowanen

谷歌图表格式

  •  1
  • oshirowanen  · 技术社区  · 14 年前

    我有下面的脚本,我需要修改一点。以下是json:

    [
        {"User1":{"v": 50.00,"f": "£100"}},
        {"User2":{"v": 10.00,"f": "£20"}},
        {"User3":{"v": 10.00,"f": "£20"}},
        {"User4":{"v": 10.00,"f": "£20"}},
        {"User5":{"v": 20.00,"f": "£40"}}
    ]
    

    <html>
    <head>
    <script language="javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="http://www.google.com/jsapi"></script>
    <script type="text/javascript">
        google.load("visualization", "1", {packages:["corechart"]});
        google.setOnLoadCallback(drawChartAjax);
    
        function drawChartAjax() {
            $.ajax({ 
                url: 'chart_json.aspx', 
                type: 'POST', 
                dataType: 'json', 
                success: function(data) { 
                    drawChart(data); 
                } 
            });
        }
    
        function drawChart(json) {
            var data = new google.visualization.DataTable();
            data.addColumn('string', 'User');
            data.addColumn('number', 'v');
            data.addRows(json.length);
            for(var j in json) {
                for(var k in json[j]) {
                    data.setValue(parseInt(j), 0, k);
                    data.setValue(parseInt(j), 1, json[j][k].v);
                }
            }
            var chart = new google.visualization.PieChart( document.getElementById('chart_div') );
            chart.draw(data, {width: 500, height: 300, is3D: true, title: 'Work In Progress'});
        }
    </script>
    </head>
      <body>
        <div id="chart_div"></div>
      </body>
    </html>
    

    这是通过给我一个漂亮的piechart来实现的,如何从JSON数据将“f”值也输入到图表中呢?

    1 回复  |  直到 14 年前
        1
  •  1
  •   sje397    14 年前

    添加f列:

    data.addColumn('number', 'v');
    data.addColumn('number', 'f'); // <- new line
    

    然后,将数据添加到行中:

    for(var k in json[j]) {
        data.setValue(parseInt(j), 0, k);
        data.setValue(parseInt(j), 1, json[j][k].v);
        data.setValue(parseInt(j), 2, parseInt(json[j][k].f.substring(1))); // <- new line
    }