https://python-visualization.github.io/folium/
GeoDataFrame を Folium で地理院地図ベースに図化する例です。
※見やすさのため不要なインデントをつけています。
import folium
##ポリゴンからコロプレスマップ
#地物の数が多い(数万)とブラウザがクラッシュ。
m = folium.Map([36, 140],
zoom_start=7,
tiles='https://cyberjapandata.gsi.go.jp/xyz/pale/{z}/{x}/{y}.png',
attr='淡色地図')
m.choropleth(
geo_data=gdf,
name='choropleth',
data=df,#gdfとdfは結合していない
columns=['key', 'A'], # dfのkeyと表示データ
key_on='feature.properties.A', # gdfのキー
fill_color='YlGn',# 色パレットを指定
threshold_scale=[0,2,4,6,8,10,12,14], # 段階
fill_opacity=0.7,
line_opacity=0.2,
legend_name='aaa')
m # ポリゴンの多い場合は、コメントアウトして表示させない。
m.save('./AAA.html')
##ポイント
#ポイント表示は数千まで?
#多い場合は表示させずにhtml保存。
#GeoDataFrameを種類で分割
gdfA=gdf[(gdf['A']==aaa)]
gdfB=gdf[(gdf['A']==bbb)]
#ベースマップ
m = folium.Map([36, 140],
zoom_start=9,
tiles='https://cyberjapandata.gsi.go.jp/xyz/pale/{z}/{x}/{y}.png',
attr='淡色地図')
#1種類目:赤色でプロット
for index, row in gdfA.iterrows():
p_txt = '種類:' + row['A']
p_txt = p_txt + '年月日:' +
str(row['年'])+'/'+
str(row['月'])+'/'+
str(row['日'])
popup = folium.Popup(p_txt, max_width=2650)
folium.Circle(#units of meters
#folium.CircleMarker(#units of pixcels
radius=100,
location=[gdfA.Lat[index], gdfA.Lng[index]],
popup=popup,
color='red',
fill_opacity=0.5, line_opacity=1,
fill=True,
fill_color='red'
).add_to(m)
#2種類目:青色でプロット
for index, row in gdfB.iterrows():
p_txt = '種類:' + row['A']
p_txt = p_txt + '年月日:' +
str(row['年'])+'/'+
str(row['月'])+'/'+
str(row['日'])
popup = folium.Popup(p_txt, max_width=2650)
folium.Circle(#units of meters
#folium.CircleMarker(#units of pixcels
radius=100,
location=[gdfB.Lat[index], gdfB.Lng[index]],
popup=popup,
color='blue',
fill_opacity=0.5, line_opacity=1,
fill=True,
fill_color='blue'
).add_to(m)
m # ポイントの多い場合はコメントアウトして表示させない。
m.save('./AAA.html')
0 件のコメント:
コメントを投稿