GoogleChartsで簡単、お手軽に地理データ分析♪
どうも、くまごろうです。
今日は最近ハマっているGISをお手軽にできるツールのご紹介です。
GISはGeographic Information System、地理情報システムの略語です。
地図上にデータを載せて、いろんなことを見えるようにしよう!というものです。
いろんなシステムが発売されていて、有名どころだとESRI社のArcGISや、GoogleさんのGoogle Earthなんかがそうです。
でも、どれもお金がかかるので個人ではなかなか手が出せないです。
それで、今日はGoogleChartsという、グーグルさんが無料提供しているAPIを使って、都道府県単位で、データを地図上に載せるってことをやってみます。
GoogleChartsってなに?
Googleさんが提供している、お手軽にきれいなグラフたちが作れるサービスです。
こちらから、このサービスで作れるグラフサンプルが見られます。
Chart Gallery - Google Charts — Google Developers
今回使うのはGeoChartという地図に情報を載せちゃうものです。
日本の食パンの購入金額を地図に載せてみる
いつもお世話になります、総務省さんの2013年家計調査結果から、全国都道府県の県庁所在地の品目別購入金額データを、各都道府県の値として、地図に載せてみます。
まずは「食パン」です。
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です。
お仕事で使うならば、都道府県別の売上とか、そういった情報を載せてみるのも面白いですね。
では、また!