Edited at
OrigamiDay 13

Pythonによるデータ可視化ライブラリ「folium」がとても使いやすい

More than 1 year has passed since last update.

この記事は Origami Advent Calendar の記事になります


概要

PythonによるData Visualization(データ可視化)の手法はmatplotlibやseabornを用いるのがよく聞く話かもしれませんが、今回は「folium」というライブラリを紹介したいと思います。

foliumはleafletというJavaScriptのOSSを使ったデータ可視化のライブラリで地図を使った表現の多さに強みがあります。

なので棒グラフやヒストグラム、散布図を出力したい場合は適宜matplotlibやseabornを使う方が良いのですが、位置情報が伴うデータに関してはfolium一択です(断言)

では、foliumでどういった事が出来るのかを紹介します。


環境

- Mac OSX El Capitan(10.11.6)

- Python(3.5.1)
- jupyter lab(0.2.1)


インストール

$ pip install folium


地図を表示

まずは地図を表示してみます。folium.Map でオプションは location 及び zoom_start を使っていますが他にもtiles(地図の見た目を変える) があり、 Stamen TonerStamen Terrain などが選択できます。


folium-sample1.py

import folium

m = folium.Map(location=[35.681382, 139.76608399999998], zoom_start=14) #東京駅の緯度経度
m


地図上に点をプロット

まずはコードを貼ります。


folium-sample2.py

import folium

m = folium.Map(location=[35.681382, 139.76608399999998], zoom_start=12)

folium.Marker([35.658581, 139.745433], popup='Tokyo tower', icon=folium.Icon(color='blue')).add_to(m)
folium.Marker([35.710063, 139.8107], popup='Tokyo skytree', icon=folium.Icon(color='blue', icon='cloud')).add_to(m)

m


先ほど用意した地図に対して Maker を追加することで地図状にプロットする事が出来ます。オプションは


  • popup : コメントを残す

  • color : Makerに色付け

  • icon : Makerにアイコン付け

などがあり、iconはfontawesomeを利用していてデフォルトでは info-sign となっています。またデフォルトの色と対応している色はここに記載されています


地図状に円をプロット

CircleMarker を使う事で地図上に円を描写する事ができます。radiusの単位はm , colorやfilcolorを設定できます。


folium-sample3.py

import folium

m = folium.Map(location=[35.681382, 139.76608399999998], zoom_start=12)

folium.Marker([35.658581, 139.745433], popup='Tokyo tower', icon=folium.Icon(color='blue')).add_to(m)
folium.Marker([35.710063, 139.8107], popup='Tokyo skytree', icon=folium.Icon(color='blue', icon='bookmark')).add_to(m)

folium.CircleMarker(
location=[35.681382, 139.76608399999998],
radius=2000,
popup='Tokyo Station',
color='#3186cc',
fill_color='#3186cc'
).add_to(m)
m



まとめ

ここで紹介したのは機能のほんの一部でしかありませんが、例えばクラスタリングの結果を pandas.Dataframenumpy.array に格納して地図状に表示するという事が簡単に出来るので位置情報に絡んだデータ分析をしている人は是非使ってみてください。foliumにはexampleがが豊富にあるので楽しくデータ可視化を試せると思います。


リンク