IT

[Python]県庁所在地別の人口でマーカーを色分け

0 0 投票数
評価

練習ファイル

もしくはコピーして、
テキストエディターにペースト

都道府県名,市区名,緯度,経度,人口
北海道,札幌市,43.06417,141.34694,1973395
青森県,青森市,40.82444,140.74,275192
岩手県,盛岡市,39.70361,141.1525,289731
宮城県,仙台市,38.26889,140.87194,1096704
秋田県,秋田市,39.71861,140.1025,307672
山形県,山形市,38.24056,140.36333,247590
福島県,福島市,37.75,140.46778,282693
茨城県,水戸市,36.34139,140.44667,270685
栃木県,宇都宮市,36.56583,139.88361,518757
群馬県,前橋市,36.39111,139.06083,332149
埼玉県,さいたま市,35.85694,139.64889,1324025
千葉県,千葉市,35.60472,140.12333,974951
東京都,新宿区,35.68944,139.69167,349385
神奈川県,横浜市,35.44778,139.6425,3777491
新潟県,新潟市,37.90222,139.02361,789275
富山県,富山市,36.69528,137.21139,413938
石川県,金沢市,36.59444,136.62556,463254
福井県,福井市,36.06528,136.22194,262328
山梨県,甲府市,35.66389,138.56833,189591
長野県,長野市,36.65139,138.18111,372760
岐阜県,岐阜市,35.39111,136.72222,402557
静岡県,静岡市,34.97694,138.38306,693389
愛知県,名古屋市,35.18028,136.90667,2332176
三重県,津市,34.73028,136.50861,274537
滋賀県,大津市,35.00444,135.86833,345070
京都府,京都市,35.02139,135.75556,1463723
大阪府,大阪市,34.68639,135.52,2752412
兵庫県,神戸市,34.69139,135.18306,1525152
奈良県,奈良市,34.68528,135.83278,354630
和歌山県,和歌山市,34.22611,135.1675,356729
鳥取県,鳥取市,35.50361,134.23833,188465
島根県,松江市,35.47222,133.05056,203616
岡山県,岡山市,34.66167,133.935,724691
広島県,広島市,34.39639,132.45944,1200754
山口県,山口市,34.18583,131.47139,193966
徳島県,徳島市,34.06583,134.55944,252391
香川県,高松市,34.34028,134.04333,417496
愛媛県,松山市,33.84167,132.76611,511192
高知県,高知市,33.55972,133.53111,326545
福岡県,福岡市,33.60639,130.41806,1612392
佐賀県,佐賀市,33.24944,130.29889,233301
長崎県,長崎市,32.74472,129.87361,409118
熊本県,熊本市,32.78972,130.74167,738865
大分県,大分市,33.23806,131.6125,475614
宮崎県,宮崎市,31.91111,131.42389,401339
鹿児島県,鹿児島市,31.56028,130.55806,593128
沖縄県,那覇市,26.2125,127.68111,317625

コード

import folium
import pandas

data = pandas.read_csv("Pop_latlon.txt")
# >>> data.columns
# >>> Index(['都道府県名', '市区名', '緯度', '経度', '人口'], dtype='object')

prefecture = list(data["都道府県名"])
pre_capital = list(data["市区名"])
lat = list(data["緯度"])
lon = list(data["経度"])
pop = list(data["人口"])

html = """
<a target="_blank">%sの県庁所在地</a><br>
%sの人口: %s 万人
"""

def color_producer(population):
    if population >= 1500000:
        return 'red'
    elif 1500000 > population >= 1000000:
        return 'orange'
    else:
        return 'green'

map = folium.Map(location=[35.684, 139.752], zoom_start=5, title="Stamen Terrain")
fg = folium.FeatureGroup(name="日本県庁所在地別人口")

for lt, ln, pop, pref, cap in zip(lat, lon, pop, prefecture, pre_capital):
    iframe = folium.IFrame(html=html % (pref, cap, pop), width=250, height=50)
    fg.add_child(folium.Marker(location=[lt, ln], popup=folium.Popup(iframe), icon=folium.Icon(color_producer(pop))))

map.add_child(fg)
map.save("Map.html")

guest
0 コメント
Inline Feedbacks
すべてのコメントを見る