Foliumは、Pythonでインタラクティブな地図を作成するための強力なライブラリです。簡単に美しい地図を生成できるため、データの視覚化や地理的な分析に非常に役立ちます。Foliumは、Leaflet.jsというJavaScriptライブラリをPythonから利用できるようにしたものであり、豊富な機能と柔軟性を提供します。以下に、Foliumの特徴と実用例を説明します。
Foliumの特徴
使いやすさ
Foliumは、簡単なコードでインタラクティブな地図を作成できるため、初心者でも扱いやすいです。地理データの視覚化が容易になります。
多様な地図スタイル
Foliumは、多様な地図スタイルやタイルセットをサポートしており、カスタマイズ可能な地図を作成できます。
インタラクティブな機能
ズーム、パン、ポップアップ、ツールチップなど、インタラクティブな機能を簡単に追加できます。これにより、ユーザーは地図と直接対話することができます。
データ統合
PandasデータフレームやGeoJSONなど、さまざまなデータソースと統合できるため、地理データの視覚化が効率的に行えます。
例題1: シンプルな地図の作成
まず、Foliumを使用してシンプルな地図を作成する方法を示します。
インストール
pip install folium
import folium
# 地図の中心を指定してマップオブジェクトを作成
m = folium.Map(location=[35.6895, 139.6917], zoom_start=12)
# 地図をHTMLファイルとして保存
m.save('simple_map.html')
このコードでは、東京の緯度経度(35.6895, 139.6917)を中心にしたシンプルな地図を作成し、simple_map.html
として保存しています。
例題2: マーカーの追加
次に、地図にマーカーを追加する方法を示します。
import folium
# 地図の中心を指定してマップオブジェクトを作成
m = folium.Map(location=[35.6895, 139.6917], zoom_start=12)
# マーカーを追加
folium.Marker([35.6895, 139.6917], popup='Tokyo Tower').add_to(m)
folium.Marker([35.6586, 139.7454], popup='Tokyo Skytree').add_to(m)
# 地図をHTMLファイルとして保存
m.save('map_with_markers.html')
結果
このコードでは、東京タワーと東京スカイツリーの位置にマーカーを追加し、それぞれのマーカーにポップアップを設定しています。
例題3: カスタムタイルセットの使用
次に、カスタムタイルセットを使用して地図のスタイルを変更する方法を示します。
import folium
# 地図オブジェクトを作成
zoom_start = 15
m = folium.Map(location=[35.658593, 139.745441],
tiles='https://cyberjapandata.gsi.go.jp/xyz/ort_old10/{z}/{x}/{y}.png',
attr='国土地理院 空中写真(1961~1964年)',
zoom_start=zoom_start)
# 地図をHTMLファイルとして保存
m.save('custom_tiles.html')
結果
このコードでは、国土地理院の
空中写真(1961~1964年)をタイルセットを使用して地図を作成しています。他にもStamen Toner
やStamen Watercolor
などのタイルセットを使用できます。
例題4: 地理データの可視化
次に、GeoJSONデータを使用して地理データを可視化する方法を示します。
import folium
import json
# GeoJSONデータをロード
geojson_data = json.load(open('japan_prefectures.geojson'))
# 地図の中心を指定してマップオブジェクトを作成
m = folium.Map(location=[35.6895, 139.6917], zoom_start=5)
# GeoJSONデータを地図に追加
folium.GeoJson(geojson_data, name='Japan').add_to(m)
# 地図をHTMLファイルとして保存
m.save('geojson_map.html')
結果
このコードでは、日本の都道府県境界を含むGeoJSONデータを地図に追加しています。GeoJSONデータを視覚化することで、地域ごとの情報を直感的に把握できます。
例題5: コロプレス地図の作成
最後に、コロプレス地図(値の範囲に応じて色分けされた地図)を作成する方法を示します。
import folium
import pandas as pd
# データの作成
data = {
'Prefecture': ['東京都', '神奈川県', '大阪府', '愛知県', '北海道'],
'Population': [13929286, 9200166, 8823453, 7548124, 5320482]
}
df = pd.DataFrame(data)
# 地図の中心を指定してマップオブジェクトを作成
m = folium.Map(location=[35.6895, 139.6917], zoom_start=5)
# コロプレス地図の作成
folium.Choropleth(
geo_data='japan_prefectures.geojson',
name='choropleth',
data=df,
columns=['Prefecture', 'Population'],
key_on='feature.properties.name',
fill_color='YlOrRd',
fill_opacity=0.7,
line_opacity=0.2,
legend_name='Population in Japan'
).add_to(m)
# 地図をHTMLファイルとして保存
m.save('choropleth_map.html')
結果
このコードでは、日本の都道府県ごとの人口データを使用してコロプレス地図を作成しています。folium.Choropleth
を使用することで、値に応じた色分けが簡単に行えます。
結論
Foliumは、Pythonでインタラクティブな地図を作成するための強力なライブラリであり、地理データの視覚化に非常に有用です。シンプルな地図の作成から、マーカーの追加、カスタムタイルセットの使用、GeoJSONデータの可視化、コロプレス地図の作成まで、多岐にわたる機能を提供しています。Foliumを活用することで、地理データの直感的な理解と分析が可能となり、研究やプレゼンテーションにおけるデータの説得力を高めることができます。