BLOG



visualizationBanner00.jpg

こんにちは、野原です。 今回はデータの可視化についてのお話です。数年前に比べて様々なデバイスが登場し、それに伴い色々なオンラインサービスも急速に普及しました。ネットを介して膨大なデータが集められ、その活用に期待が高まっています。

この膨大なデータを活用するといっても数字とにらめっこするだけではなかなか難しいですよね。せっかくのデータをより有効に活用するための手段としてデータのビジュアライズ(可視化)に注目が集まっています。

データをビジュアライズって何がいいのか

データのビジュアライズとは、ざっくり説明すると対象となるデータを既存のアルゴリズムを用いてコンピューターで描画することです。たとえば、エクセルのデータを元にグラフを作って視覚的にわかりやすい形にするのも同じことですね。 データをビジュアライズすることには、いろいろなメリットがあります。

  • 参照元のデータに変更があってもすぐに反映される。
  • コンピューターを介するので膨大なデータを扱うことが得意。
  • 人間では難しい複雑なデータも扱うことができる。
  • フィルターやソートなどのインタラクションが可能で、即時に反映ができる。

同じように情報を視覚的に表現したものにインフォグラフィックがありますが、インフォグラフィックは対象となるデータを作者が理解しその特性をうまく表現することで誰が見てもわかりやすい形にしますよね。 作者が手作業で作るためその人の理解力や表現力に左右されることが多いですが、データのビジュアライズはコンピューターを使って描画するのでその辺の心配はする必要がありません。

もっと理解を深めようとしたら身につけなければいけない知識がたくさんありそうですが、今回そのあたりはさておき、身近なデータを使ってデータのビジュアライズを行うことで、その恩恵を感じてみることにしました。

日本全国の鈴木さんの分布を可視化してみる

今回は身近なテーマとして、日本の代表的な苗字として知られてる「鈴木さん」がどのように日本の都道府県に分布してるのかを地図上で表してみることにしました。 「鈴木さんの数」という絶対値だと人口が多いところが必然的に多くなってしまうため、「人口1000人あたりに占める鈴木さんの割合」を使うこととします。 さて、日本の鈴木さん生息地はいかに。

使うものはこれ

● Leaflet

Web上で地図を表示するオープンソースのマップクライアントライブラリです。
http://leafletjs.com/

● 鈴木さんの分布データ

2014年のものです。こちらの記事のデータを参考にします。
http://todo-ran.com/t/kiji/16499

可視化の手順

1. 鈴木さんデータの作成

参考URLにある数値を元に、必要な情報をまとめます。 必須なものは以下の二つです。

  • 人口1000人あたりに占める鈴木さんの割合
  • 県の緯度・経度(県の中心がよかったのですがそこまでデータがないので今回は県庁所在地の位置)

例)

  {
    "prefecture": "静岡", ←都道府県名
    "totalnum": "199,000", ←各都道府県の鈴木さんの人口
    "num": "53.28", ←人口1000人あたりに占める鈴木さんの割合
    "pos":{
      "lat":34.97694, ←緯度
      "lng":138.38306 ←経度
    }
  }

2. Leafletを使ってブラウザ上に日本地図を表示

分布する際の下地となる地図をLeafletを使って作成します。

3. 地図上にデータを基にマッピング

2で表示させた地図に1で作成したデータを元にアイコンをマッピングしていきます。 緯度経度に基づき地図上の位置を決め、「人口1000人あたりに占める鈴木さんの割合」の大きさに合わせて表示マッピングするアイコンの大きさを変化させることにします。 緯度経度は各都道府県の県庁所在地にし、アイコンは魚のスズキにしました。

では、サンプルを見てみましょう。

thumb_suzuki.png

サンプルを見る


まとめ

どうでしょうか。わりとどこでも満遍なくいらっしゃるとおもっていた鈴木さんは、圧倒的に東日本に多いことがわかりますね。 静岡あたりでうまれ、北上していったのかななど色々な想像が膨らむのが楽しいですね。

どの県が一番多いか、少ないかというのはもちろん数字だけでわかるのですが、「都道府県の位置」という新しい情報を加えて可視化することで数字だけでは気づけなかった県同士の関係など新たな気づきを得ることができました。また、データのビジュアライズゆえに参照元のデータをたとえば佐藤さん、田中さんなどに変えても同じことができるし、たとえば時間という新しい軸をプラスするなんてことも簡単にできます。

単純に表のものを可視化すればわかりやすいというわけではなく、可視化した方がよりわかりやすくなるための指標を考えるという視点がとても大事だなと思いました。

また面白そうなデータがあったら、可視化してみたいと思います!