0

何らかの理由で、次のコードは期待されるgoogle散布図を提供しません。JSON URLには、両方のテーブル変数の数値出力があります。任意の手がかり(ちなみに、JSONは円グラフで機能します。これには、散布図の数値変数の代わりに1つの文字列変数が含まれます)。

$(function() { 
     // when document loads, grab the json
     $.getJSON(jsonurl, function(data) {
         // once grabbed, we run this callback

         // setup the new table and its data
         var data = new google.visualization.DataTable();
             data.addRows(data.rows.length);  // length gives us the number of results in our returned data
             data.addColumn('number', 'meterprijs');
             data.addColumn('number', 'perceeloppervlak');

         // now we need to build the map data, loop over each result
         $.each(data.rows, function(i,v) {
             // set the values for both the name and the population
             data.setValue(i, 0, v.a1_meterprijs);
             data.setValue(i, 1, v.a1_buitenopp);
         });
         // finally, create the map!

var options = {
      title: 'Age vs. Weight comparison',
      hAxis: {title: 'Meterprijs', minValue: 1500, maxValue: 6000},
      vAxis: {title: 'Perceelopp', minValue: 10, maxValue: 1000},
      legend: 'none'
    };        


         var chart = new google.visualization.ScatterChart(
           document.getElementById('visualization2'));
              chart.draw(data, options);

          });
        });
       });
      });

4

1 に答える 1

0

さて、これが機能しているコードです。初期設定は問題ありませんでしたが、変更しました。

1)チャートマップは、合理性のためにデータではなく「mapje」という名前になります(チャートはデータではありませんが、データ自体はデータです)2)テーブルには数値を入力する必要があるため、jsonが数値を解析するとき文字列( "と"の間)として、変数の前に+を追加して数値として読み取る必要があります(v.a1_meterprijsなど)。

したがって、結局のところ、最初のコードは一部の人にとってはうまくいったかもしれませんが、これは私にとってはうまくいきます:

$(function() { 
     // when document loads, grab the json
     $.getJSON(jsonurl, function(data) {
         // once grabbed, we run this callback

         // setup the new table and its data
         var mapje = new google.visualization.DataTable();
             mapje.addRows(data.rows.length);  // length gives us the number of results 
             in our returned data
             mapje.addColumn('number', 'Perceelopp');
             mapje.addColumn('number', 'Meterprijs');

         // now we need to build the map data, loop over each result
         $.each(data.rows, function(i,v) {
             // set the values for both the name and the population
             mapje.setValue(i, 0, + v.a1_buitenopp);
             mapje.setValue(i, 1, + v.a1_meterprijs);
         });
         // finally, create the map!

var options = {
      title: 'Meterprijs vs Perceeloppervlak',
      hAxis: {title: 'Perceelopp', minValue: 10, maxValue: 1000},
      vAxis: {title: 'Meterprijs', minValue: 1500, maxValue: 6000},
      legend: 'none'
    };  



         var chart = new google.visualization.ScatterChart(
           document.getElementById('visualization2'));
              chart.draw(mapje, options);

          });
        });
       });
      });

于 2012-10-18T19:37:44.380 に答える