foliumでヒートマップの作り方をおぼえた

はじめまして。

ツイッターばかりしてて長文が書けなくなってきたので、はてなブログを始めました。

 

foliumでヒートマップの作り方をおぼえたのでメモとして残します。

 

緯度・経度のデータをヒートマップでプロットするpythonスクリプトはこんな感じです。

import folium
from folium.plugins import HeatMap

# 地図の中心を大手町にセット
map = folium.Map(location=[35.684952, 139.769842], zoom_start=12)

# プロットするデータのリスト
list = [
[35.68075751, 139.76717134],
[35.68330693, 139.76900625],
[35.66299721, 139.73246813]
]

# データをヒートマップとしてプロット
HeatMap(list, radius=4, blur=3).add_to(map)

# HTMLを出力
map.save('tmpl.html')

 

自作したツールで集めたTwitterの位置情報付きツイートのデータがあるので、それをヒートマップとして出力してみます。

f:id:hikiniku11029:20190618112222p:plain

 

イイ感じですね(・∀・)!

78万件ほどのデータをプロットしたんですが約20MBのHTMLが出力されてサクサク描画されます。Chromeで見ているかぎり、使い心地も悪くありませんでした。

 

 

 foliumの地図のスタイルは"タイル"というので変更できるのでちょっと変えてみたのが以下です。夜景みたいに綺麗になりました。

f:id:hikiniku11029:20190618111405p:plain

 

f:id:hikiniku11029:20190618111451p:plain

 

f:id:hikiniku11029:20190618111512p:plain

 

f:id:hikiniku11029:20190618111534p:plain

 

NHKドキュメンタリーで使われそうな絵がつくれて満足です。

普段わからないものを視覚化できるのは楽しくて、意味なくニヤニヤできます。

 

pythonスクリプトはこんな感じでcartodbdark_matterというタイルに変更して、ヒートマップの色(グラデーション)も他のサイトを参考に変えてます。

import folium
from folium.plugins import HeatMap

# 地図の中心を大手町にセット
map = folium.Map(location=[35.684952, 139.769842], zoom_start=12, tiles='cartodbdark_matter')

# プロットするデータのリスト
list = [
[35.68075751, 139.76717134],
[35.68330693, 139.76900625],
[35.66299721, 139.73246813]
]

# マッピング
HeatMap(list, radius=4, blur=3, gradient={ "0.4":"blue","0.65":"cyan","1":"white" }).add_to(map)


# HTMLを出力
map.save('tmpl2.html')

 

 はてなブログの作法はまだよくわかってませんが、気が向くままに書き綴ろうと思ってます。

 

ここまで読了ありがとうございました。