マップで描画する
folium というPython 用のライブラリがある.
これを用いるとマップを用いた描画が可能になる.
サンプルコードを残す.
# 必要なライブラリをインポート
import folium # 地図の作成と操作を行うライブラリ
import pandas as pd # データ操作のためのライブラリ
from branca.colormap import linear # カラーマップの作成に使用
# サンプルデータの作成(都市名、緯度・経度、人口)
data = {
'City': ['東京', '大阪', '名古屋', '福岡', '札幌'],
'Latitude': [35.6895, 34.6937, 35.1815, 33.5902, 43.0618],
'Longitude': [139.6917, 135.5023, 136.9066, 130.4017, 141.3545],
'Population': [13929286, 2691186, 2295666, 1620585, 1952356] # 各都市の人口
}
# データフレームの作成
df = pd.DataFrame(data)
# 地図の作成(日本の中心付近を指定)
m = folium.Map(location=[36.2048, 138.2529], zoom_start=5)
# カラーマップの作成(人口に応じて色を変えるため)
colormap = linear.YlOrRd_09.scale(df['Population'].min(), df['Population'].max())
colormap.caption = '人口規模' # カラーマップの凡例を設定
# マーカーの追加
for idx, row in df.iterrows():
# 各都市に円形マーカーを追加
folium.CircleMarker(
location=[row['Latitude'], row['Longitude']], # マーカーの位置(緯度・経度)
radius=10, # マーカーの半径を設定
popup=f"{row['City']} (人口: {row['Population']})", # ポップアップに都市名と人口を表示
color=colormap(row['Population']), # マーカーの枠線の色を人口に応じて設定
fill=True, # マーカーを塗りつぶし
fill_color=colormap(row['Population']), # 塗りつぶしの色を人口に応じて設定
fill_opacity=0.7 # マーカーの透明度を設定
).add_to(m)
# カラーマップを地図に追加
colormap.add_to(m)
# 地図の表示(HTMLファイルとして保存)
m.save('map_with_population.html')