くまのつぶやき

かんがえる、きめる、はかる、つくる、つたえるにまつわるスキルやテクニックを書いてます。ときどき、はたらきかたとか、気になったこととかも。

GoogleChartsで簡単、お手軽に地理データ分析♪

どうも、くまごろうです。

今日は最近ハマっているGISをお手軽にできるツールのご紹介です。

GISはGeographic Information System、地理情報システムの略語です。

地図上にデータを載せて、いろんなことを見えるようにしよう!というものです。

いろんなシステムが発売されていて、有名どころだとESRI社のArcGISや、GoogleさんのGoogle Earthなんかがそうです。

でも、どれもお金がかかるので個人ではなかなか手が出せないです。

それで、今日はGoogleChartsという、グーグルさんが無料提供しているAPIを使って、都道府県単位で、データを地図上に載せるってことをやってみます。

GoogleChartsってなに?

Googleさんが提供している、お手軽にきれいなグラフたちが作れるサービスです。

こちらから、このサービスで作れるグラフサンプルが見られます。

Chart Gallery - Google Charts — Google Developers

今回使うのはGeoChartという地図に情報を載せちゃうものです。

日本の食パンの購入金額を地図に載せてみる

いつもお世話になります、総務省さんの2013年家計調査結果から、全国都道府県の県庁所在地の品目別購入金額データを、各都道府県の値として、地図に載せてみます。

まずは「食パン」です。

2013年家計調査 食パンの都道府県庁所在地別の購入金額

f:id:kumabro:20140330181605p:plain

兵庫県徳島県の色が濃いですね。

色が濃いほど「食パンの購入金額多い」となります。

日本全体をみると、東日本よりも西日本のほうが濃い=購入金額が高いですね。

東北、特に秋田県の食パン支出額が少ないことが際立っています。

もう一つ「他のパン」という菓子パンや惣菜パンのカテゴリで観てみましょう。

2013年家計調査 他のパンの都道府県庁所在地別の購入金額

f:id:kumabro:20140330182051p:plain

兵庫県は惣菜パンや菓子パンへの購入金額も高いのですね。

このデータでも、西日本のほうが購入金額が高いことがわかります。

東側では富山県岩手県でも購入金額が多いですね。

こういう感じで、数値で並べてみるとわかりづらかったことが、地図上に載せて色付けすると、全体を把握し、違いを発見する手がかりになります。

たとえば、今回発見したことから、それがなぜ起きているのか?その原因はなにか?とか深く調べるきっかけを見つけられます。

GoogleGeoChartのつくり方は?

この地図はjavascriptというコンピュータ言語で書いています。

といっても、さきほどご紹介したサンプルを載せているサイトから、サンプルのソースコードをもらってきて、データを変えているだけです。

食パンの地図は、こういうふうに書いています。

食パンの地図のソースコード

<html>
<head>
  <script type='text/javascript' src='https://www.google.com/jsapi'></script>
  <script type='text/javascript'>
   google.load('visualization', '1', {'packages': ['geomap']});
   google.setOnLoadCallback(drawMap);

    function drawMap() {
      var myDataTable = new google.visualization.DataTable();
      myDataTable.addColumn('string', '都道府県');
      myDataTable.addColumn('number', "食パンの購入金額");

      myDataTable.addRows([['北海道',6390],['青森',7565],['岩手',7862],['宮城',8044],['秋田',5419],['山形',6231],['福島',5579],['茨城',7447],['栃木',8133],['群馬',6338],['埼玉',9220],['千葉',8849],['東京',9198],['神奈川',9856],['新潟',8002],['富山',8745],['石川',9891],['福井',7115],['山梨',7171],['長野',6805],['岐阜',8634],['静岡',9286],['愛知',9842],['三重',8670],['滋賀',9815],['京都',11072],['大阪',9997],['兵庫',11915],['奈良',10510],['和歌山',9462],['鳥取',9416],['島根',10335],['岡山',9301],['広島',8837],['山口',8188],['徳島',9919],['香川',11145],['愛媛',8774],['高知',9631],['福岡',7518],['佐賀',8632],['長崎',7088],['熊本',6712],['大分',7260],['宮崎',6098],['鹿児島',6718],['沖縄',7611]]);
      
      var options = {};
      options['region'] = 'JP';
      options['width'] = '1000';
      options['height'] = '800';

      var container = document.getElementById('map_canvas');
      var geomap = new google.visualization.GeoMap(container);
      geomap.draw(myDataTable, options);
  };
  </script>
</head>

<body>
  <div id='map_canvas'></div>
</body>
</html>


ほとんどが"おまじない"みたいなものなので、いじる必要はないです。

大事なことは2つです。

「どういうデータを載せるのか?」、「載せるデータ」。
1つ目は、ここです。

      myDataTable.addColumn('string', '都道府県');
      myDataTable.addColumn('number', "食パンの購入金額");


載せるデータの構造は、都道府県と食パンの購入金額です、と宣言しています。
コンピュータは人間よりも処理能力が高いです。
でも、きちんと宣言したり、説明したり、お膳立てしないと、まったく動きません。
ということで、ここでまずデータの構造を宣言します。

addColumnは「列を追加しますよ!」という意味です。
Excelの列挿入と同じと思ってください。

stringは文字データを意味し、numberは数字データを意味します。

つまり1行目を日本語にするとこんなかんじです。
「これからデータを入れるための列を追加します。列の名前は都道府県で文字情報です。列のデータは食パンの購入金額で数字情報です。」


そして2つ目はこの部分です。

      myDataTable.addRows([['北海道',6390],['青森',7565],['岩手',7862],['宮城',8044],['秋田',5419],['山形',6231],['福島',5579],['茨城',7447],['栃木',8133],['群馬',6338],['埼玉',9220],['千葉',8849],['東京',9198],['神奈川',9856],['新潟',8002],['富山',8745],['石川',9891],['福井',7115],['山梨',7171],['長野',6805],['岐阜',8634],['静岡',9286],['愛知',9842],['三重',8670],['滋賀',9815],['京都',11072],['大阪',9997],['兵庫',11915],['奈良',10510],['和歌山',9462],['鳥取',9416],['島根',10335],['岡山',9301],['広島',8837],['山口',8188],['徳島',9919],['香川',11145],['愛媛',8774],['高知',9631],['福岡',7518],['佐賀',8632],['長崎',7088],['熊本',6712],['大分',7260],['宮崎',6098],['鹿児島',6718],['沖縄',7611]]);


宣言したデータ構造に従って、全都道府県分のデータを作っています。
文字列の情報はシングルクオートで囲む必要があります。数字はそのままで大丈夫です。

このプログラムをメモ帳とかテキストエディタに貼り付けて、拡張子を.htmlにして保存します。
それをインターネットにつながったパソコンから開くと、上で紹介した食パンの購入金額地図が表示されます。

違うデータを見たい時は、大事なここと2つ目の部分の数字データを変えるだけでokです。


お仕事で使うならば、都道府県別の売上とか、そういった情報を載せてみるのも面白いですね。

では、また!

copyrights kumagorou all rights reserved.