0

グーグル視覚化APIを使用してこの散布図を視覚化しようとしているときに、本当に奇妙な問題が発生しています。

基本的に、最初のデータポイントを[0,0]とするとすべて問題ありませんが、最初のポイントから[0,0]を削除すると、グラフは作成されません。私はコンソールをチェックしました、そしてこれはそれが言ったことです:

"Uncaught SyntaxError:Unexpected token <
Uncaught Error:Invalid value in0,0"

なぜ最初のポイントは[0,0]である必要があるのですか?

<html>
  <head>
    <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 data = google.visualization.arrayToDataTable([
          ['Camera','Avg Rating'],
          [ {v:6000, f: 'Canon EOS-1Ds Mark III'}, 60],
          [ {v:5000, f: 'Canon EOS-1Ds Mark II'}, 50],
          [ {v:4000, f: 'Canon EOS-1D Mark IV'}, 40]
        ]);

        var options = {
          title: 'Breakdown of Camera Models by Price, Photo Rating and Brand',
          hAxis: {title: 'Price (USD)', minValue: 0, maxValue: 7500},
          vAxis: {title: 'Avg Rating (at peak)', minValue: 0, maxValue: 55},
          legend: 'none'          
        };
        var chart = new google.visualization.ScatterChart(document.getElementById('chart_div'));
        chart.draw(data, options);
      }
    </script>
  </head>
  <body>
    <div id="chart_div" style="width: 1000px; height: 1000px;"></div>
  </body>
</html>
4

2 に答える 2

2

ここでの問題は、{v:value、f:'formatted value'}構文がarrayToDataTableメソッドでの使用に無効であるということです(ここに記載されているように(https://developers.google.com/chart/interactive/docs/reference #google.visualization.arraytodatatable))。その構文を使用する場合は、DataTableを手動で定義してから、#addRowsメソッドを使用する必要があります

于 2013-07-24T16:49:11.133 に答える
1

エラーが発生した理由はわかりませんが、回避する方法を見つけました。DataTableコンストラクターを使用したときに機能し始めました。

var data = new google.visualization.DataTable();
                data.addColumn('number', 'Price');
                data.addColumn('number', 'Canon');
                data.addColumn('number', 'Nikon');
                data.addColumn('number', 'Other');
                data.addRows([
                  [{v:6000, f: 'Canon EOS-1Ds Mark III'}, 60  ,null  ,null],
                  [{v:5000, f: 'Canon EOS-1Ds Mark II'}, 50  ,null  ,null],

arraytoDataTableコンストラクターの代わりに:

   var data = google.visualization.arrayToDataTable([
      ['Camera','Avg Rating'],
      [ {v:6000, f: 'Canon EOS-1Ds Mark III'}, 60],
      [ {v:5000, f: 'Canon EOS-1Ds Mark II'}, 50],
      [ {v:4000, f: 'Canon EOS-1D Mark IV'}, 40]
    ]);

これに遭遇した人の助けになることを願っています。

于 2012-12-26T20:32:35.727 に答える