マップで描画する


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')


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です