pip install folium
에러 발생 시,
ERROR: After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves dependency conflicts.
We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.
selenium 4.1.0 requires urllib3[secure]~=1.26, but you'll have urllib3 1.25.11 which is incompatible.
해결
pip install folium --use-feature=2020-resolver
# 위도(latitude), 경도(longitude) 를 이용한 위치표시
import folium
print(folium.__version__)
0.12.1.post1
# 위도, 경도 위치를 중심으로 한 지도를 표시
loc = folium.Map(location=[37.546817, 126.911411])
loc
# 51.48715045410139, -0.00427069814187904
loc = folium.Map(location=[51.48715, 0])
loc
# 위치 표시, 확대 (zoom_start 값이 크면 확대큼.)
# default = 10, zoom_start . 0~18
import folium
m = folium.Map(
location=[37.5466423,126.9092281],
zoom_start=15
)
m
m.save('map.html')
### 확인하기
import os
path = os.getcwd()
os.listdir(path)
['.DS_Store', '.ipynb_checkpoints', 'C1_2B_1_matplotlib_datavis_corona.ipynb', 'C1_2_1_matplotlib.ipynb', 'C1_3_1_Seaborn_Basic.ipynb', 'C1_3_2_titanic_datavis.ipynb', 'C1_3_3_Titanic_EDA_DataPreprocessing.ipynb', 'C1_4_1_pandas_01.ipynb', 'C1_4_2_pandas_02_california.ipynb', 'C1_4_3_titanic_dataset.ipynb', 'C1_4_4_화장품관련키워드분석_ing.ipynb', 'C1_4_5_titanic_dataset_pandas_etc.ipynb', 'C1_4_6_corona_analysis.ipynb', 'C1_5_1_folium_local.ipynb', 'C1_5_1_folium_withColab.ipynb', 'C1_5_2_folium_seoul_data.ipynb', 'C1_6_1_plotly_basic_iplot.ipynb', 'C1_6_2_plotly_express_v11.ipynb', 'data', 'html_pdf', 'map.html', 'part2_1_1_datavis', 'part2_1_2B_matplotlib', 'part2_1_2_matplotlib', 'part2_1_3_seaborn', 'part2_1_4A_pandas', 'part2_1_4B_pandas', 'part2_1_5B_folium_project', 'part2_1_5C_folium_실습결과물', 'part2_1_5_folium', 'part2_1_6B_plotly', 'part2_1_6C_실습결과물', 'part2_1_6_plotly', 'part2_2_1A_konlpy', 'part2_2_1B_konlpy_pratice', 'part2_2_1C_konlpy_결과물', 'Plugins_1.html']
## 원모양의 마커
## 양화진, 성산 중학교 마커
## folium.Marker, folium.CircleMaker
## 구글 지도 이용하여 위도, 경도 확인하기
loc = folium.Map(location=[37.546817, 126.911411], zoom_start=17)
folium.Marker([37.546817, 126.911411]).add_to(loc) # 양화진
folium.Marker([37.547394, 126.915816]).add_to(loc) # 성산중학교
loc
m = folium.Map(
location=[37.5466423,126.9092281],
zoom_start=15
)
folium.Marker(
location=[37.5466423,126.9092281],
popup = 'yanghwajin', # 선택 시 popup
icon = folium.Icon(color='purple', icon="info-sign") # 아이콘 # glyphicon-check, star
).add_to(m)
m
m = folium.Map(
location=[37.5466423,126.9092281],
zoom_start=15
)
folium.CircleMarker(
location=[37.5466423,126.9092281],
radius = 100,
color = '#ffffgg',
fill_color='#fffggg',
popup = 'yanghwajin', # 선택 시 popup
).add_to(m)
m
from folium import plugins
import numpy as np
import os
N = 100
data = np.array(
[
np.random.uniform(low=35, high=60, size=N),
np.random.uniform(low=-12, high=30, size=N),
]
).T
print(data[0:10])
[[35.85406988 7.4665706 ] [35.36462578 0.33840394] [44.12642911 11.05151343] [45.47364162 -3.39706172] [50.23665313 19.44721392] [35.13422815 7.00823338] [40.04159914 4.18638371] [49.3120774 28.48541779] [49.0481822 29.04306931] [51.31981765 -0.97675987]]
print( list(data[1]) )
print( list(data[2]) )
print( list(data[3]) )
[35.364625784722605, 0.3384039352661681] [44.1264291094885, 11.051513425207261] [45.473641616893445, -3.3970617170088673]
m = folium.Map(
location = [35.36462578, 0.33840394],
zoom_start = 6,
tiles = 'Cartodb Positron'
)
for i in range(len(data)):
folium.Circle(
location = list(data[i]),
radius = 50,
color = '#000000',
fill = 'crimson'
).add_to(m)
m.save('map_circle.html')
m
popups = [str(i) for i in range(N)] # Popups texts are simple numbers.
m = folium.Map([45, 3], zoom_start=4)
plugins.MarkerCluster(data, popups=popups).add_to(m)
m.save(os.path.join('.', 'Plugins_1.html'))
m
from folium.plugins import HeatMap
m = folium.Map(
location = [35.36462578, 0.33840394],
zoom_start = 5,
tiles = 'Cartodb Positron'
)
HeatMap(data).add_to(m)
m
import folium
m = folium.Map(
location=[37.5838699,127.0565831],
zoom_start=10
)
import json
with open('./data/seoul_muncipalities_geo.json',mode='rt',encoding='utf-8') as f:
geo = json.loads(f.read())
f.close()
folium.GeoJson(
geo,
name='seoul_municipalities'
).add_to(m)
m.save('map.html')
m
stamen = folium.Map(location=[45.5236, -122.6750],
tiles='Stamen Toner',
zoom_start=13)
stamen
stamen = folium.Map(location=[45.5236, -122.6750],
tiles='Stamen Terrain',
zoom_start=13)
stamen