はじめに
地理情報を分かりやすく可視化したい、データ分析や業務レポートに地図を活用したい――そんなニーズに応えるPythonライブラリ「folium」に関して、本記事ではfoliumの概要、インストール方法、基本的な使い方を解説します。
foliumの概要
- foliumは、JavaScriptの地図描画ライブラリ「Leaflet.js」をPythonから利用できるラッパーライブラリです
- Pythonコードからインタラクティブな地図を生成し、HTMLファイルとして出力できます
- デフォルトの地図タイルは「OpenStreetMap」です
- カスタムタイル(XYZタイル)など、さまざまな地図スタイルに対応しています
- マーカー、ライン、ポリゴン、ヒートマップ、GeoJSONデータの可視化など、多彩な地図表現が可能です
インストール
pipの場合
pip install folium
condaの場合
conda install -c conda-forge folium
- Google Colaboratoryなどクラウド環境でも!pip install foliumで利用可能
- 依存パッケージ(branca, jinja2, numpy, requests等)は自動的にインストールされる
動作確認
Jupyter Notebookの場合
インタラクティブに地図を表示することができます
import folium
fm = folium.Map(location=[35.681236, 139.767125], zoom_start=12)
fm
VSCode+git-bashの場合
インタラクティブに地図を表示することができないので、地図をHTMLファイルとして保存しWebブラウザで開きます。
VSCodeの拡張機能「Live Server」などを使えば、HTMLファイルを自動でブラウザ表示・リロードできます。
import folium
fm = folium.Map(location=[35.681236, 139.767125], zoom_start=12)
fm.save("map.html")
簡単な使い方と活用シーン
1. 地図の作成
import folium
# 地図オブジェクトの作成(東京駅を中心に表示)
fm = folium.Map(location=[35.681236, 139.767125], zoom_start=12)
# 地図をHTMLファイルとして保存
fm.save("sample_1.html")
利用目的・効果
- 地理情報の可視化の土台
- 以降のデータ(マーカーやライン、ヒートマップ等)を重ねて活用するための基盤
2. マーカーの追加
import folium
fm = folium.Map(location=[35.6895, 139.6917], zoom_start=12)
folium.Marker(
location=[35.6895, 139.6917],
popup="東京タワー",
icon=folium.Icon(icon="star", color="red")
).add_to(fm)
fm.save("sample_2.html")
利用目的・効果
- 地図上へのマーカー配置による特定地点や拠点の位置の直感的な可視化
- CSVなどで管理している緯度・経度リストをもとにした複数地点へのマーカー一括設置
3. カスタムタイルの利用
import folium
fm = folium.Map(
location=[35.6804, 139.7670],
zoom_start=15,
tiles="https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png",
attr="地理院地図"
)
fm.save("sample_3.html")
利用目的・効果
- 標準のOpenStreetMap以外の任意地図タイルの指定表示
- たとえば、国土地理院の地図タイル利用による地形・地勢・行政界などの詳細情報の地図上表示
- 用途に応じた最適地図タイル選択による専門的な地図表現
4. ヒートマップやルート表示
from folium.plugins import HeatMap
import folium
fm = folium.Map(location=[35.681236, 139.767125], zoom_start=12)
heat_data = [
[35.681236, 139.767125],
[35.6895, 139.6917],
[35.6938, 139.7034]
]
HeatMap(heat_data).add_to(fm)
fm.save("sample_4.html")
利用目的・効果
- ヒートマップ活用による地理的な「密度」や「集中度」の色濃淡表現
- たとえば、顧客やイベント参加者などの位置データをもとにした集中エリアの直感的把握
まとめ
foliumは、Pythonで地理情報を可視化するための有力な選択肢です。手軽に地図作成・可視化ができるツールです。
地図の作成、マーカーやヒートマップの追加、カスタムタイルの利用など、業務や分析の現場で求められる多様な地図表現に対応しています。
地理情報の可視化や業務効率化を検討している方は、ぜひお試しください。