将JSON加载到Google Area Chart

时间:2015-11-09 19:53:33

标签: javascript json charts google-visualization

我试图将json数据加载到Google Chart中,就像here一样。为了简化开始,我在html文件中定义了json。我可以让这个例子工作正常(它是一个饼图),但是当我尝试使用面积图时,它不起作用。这就是我正在做的事情:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
    google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var jsonData = 
              {
                cols: [{id: 'A', label: 'NEW A', type: 'string'},
                       {id: 'B', label: 'B-label', type: 'number'},
                       {id: 'C', label: 'C-label', type: 'date'}
                ],
                rows: [{c:[{v: 'a'},
                           {v: 1.0, f: 'One'},
                           {v: new Date(2008, 1, 28, 0, 31, 26), f: '2/28/08 12:31 AM'}
                      ]},
                       {c:[{v: 'b'},
                           {v: 2.0, f: 'Two'},
                           {v: new Date(2008, 2, 30, 0, 31, 26), f: '3/30/08 12:31 AM'}
                      ]},
                       {c:[{v: 'c'},
                           {v: 3.0, f: 'Three'},
                           {v: new Date(2008, 3, 30, 0, 31, 26), f: '4/30/08 12:31 AM'}
                      ]}
                ]
              };

        var data = google.visualization.DataTable(jsonData);

        var options = {
          title: 'Company Performance',
          hAxis: {title: 'Year',  titleTextStyle: {color: '#333'}},
          vAxis: {minValue: 0}
        };

        var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));
        chart.draw(data, options);
      }
    </script>
</script>
    <div id="chart_div" style="width:900; height:500"></div>

它没有用上面的代码绘制任何东西。我确定这个问题真的很琐碎,但有人可以告诉我它是什么吗?

非常感谢, 亚历

1 个答案:

答案 0 :(得分:1)

第一个错误是未捕获错误:您在没有“new”关键字的情况下调用了google.visualization.DataTable()。之后,检查数据。我不相信你可以将日期和数字组合成面积图,它预计数字。

我插入一个示例并更改为数字并且有效:jsfiddle.net/L1tct3Lv/25

    var jsonData = 
          {
            cols: [{id: 'a', label: 'NEW A', type: 'string'},
                   {id: 'b', label: 'B-label', type: 'number'},
                   {id: 'c', label: 'C-label', type: 'number'}
            ],
            rows: [{c:[{v: 'a'},
                       {v: 1.0, f: 'One'},
                       {v: 100}
                  ]},
                   {c:[{v: 'b'},
                       {v: 2.0, f: 'Two'},
                       {v: 200}
                  ]},
                   {c:[{v: 'c'},
                       {v: 3.0, f: 'Three'},
                       {v: 300}
                  ]}
            ]
          };

    var data = new google.visualization.DataTable(jsonData);