Help us understand the problem. What is going on with this article?

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

More than 3 years have 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

Screen Shot 2016-12-27 at 10.38.21.png

地図上に点をプロット

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

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 となっています。またデフォルトの色と対応している色はここに記載されています

Screen Shot 2016-12-27 at 10.52.36.png

地図状に円をプロット

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

Screen Shot 2016-12-27 at 11.17.53.png

まとめ

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

リンク

momota10
Python, Go, AWS, SQL
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした