TOP
class="layout-aside-left paging-number">
본문 바로가기
[파이썬 Projects]/<파이썬 기초>

[파이썬] 지도 시각화 도구 - Folium

by 기록자_Recordian 2024. 4. 16.
728x90
반응형
시작에 앞서
해당 내용은 <파이썬으로 데이터 주무르기> -민형기 저, BJPUBLIC 출판사 의 내용을 토대로 작성되었습니다.
보다 자세한 내용은 해당 교재를 확인하여 주시기 바랍니다.

파이썬 시각화 도구 기초 관련 글 모음

 

[파이썬] 지도 시각화 도구 - Folium

[파이썬] 파이썬 시각화 도구 - Seaborn

[파이썬] 파이썬 시각화 도구 - Matplotlib


Folium 을 통해 지도에 데이터 시각화 하기

 
먼저 pip install folium 으로 Folium 라이브러리를 설치하고
import folium 으로 해당 라이브러리를 import

you may need to restart the kernel to use updated packages.


※ 'you may need to restart the kernel to use updated packages.' 라는 명령이 뜨면
1) 먼저 커널을 restart 한다

restart kernel

 
2) !pip install folium --upgrade   명령어를 통해 folium package를 업그레이드 한다

package upgrade

 
3) 그리고 다시 folium을 import 하면 된다


위도와 경도 정보를 통해 지도 불러오기
map_osm = folium.Map(location=[45.5236, -122.6750])
map_osm

 

zoom_start 로 확대 비율 정의하기
stamen = folium.Map(location=[45.5236, -122.6750], zoom_start=13)
stamen

 

tiles 옵션으로 다르게 표현하기
stamen = folium.Map(location=[45.5236, -122.6750], tiles='Stamen Toner', zoom_start=13)
stamen

※ stamen Toner 스타일은 더이상 무료로 제공이 되지 않는다고 한다.
 

stamen toner
대강 이런 스타일의 지도다

지도를 그리고 원하는 좌표에 마크(Marker) 와 반경 지정(CircleMarker) 하기
import folium
map_2 = folium.Map(location=[45.5236, -122.6750], zoom_start=13)
folium.Marker([45.5244, -122.6699], popup='The Waterfront').add_to(map_2)
folium.CircleMarker([45.5215, -122.6261], radius=50, popup='Laurelhurst Park', color='#3186cc', fill_color='#3186cc').add_to(map_2)
map_2

folium, Marker, CircleMarker

 

2012 년 기준 미국 주별 실업률 불러오기

 
먼저 pandas를 import 하고, 첨부파일을 다운로드 받는다

02. folium_US_Unemployment_Oct2012
0.00MB

 

state_unemployment = '../data/02. folium_US_Unemployment_Oct2012.csv'

state_date = pd.read_csv(state_unemployment)
state_date.head()

미국 실업률 계산하기

지도에 시각화하기 위해 하단의 json 파일을 다운 받고

02. folium_us-states
0.08MB

 
※ 교재에 나와있는 코드를 입력했더니, 또 map에 choropleth 가 없다며 오류가 난다.

map object has no attribute choropleth

 
이럴땐 역시, 챗GPT의 도움을 받아야 한다.

# GeoJSON 파일 경로
state_geo = '../data/02. folium_us-states.json'

# 데이터 생성 (예시)
state_data = pd.DataFrame({
    'state': ['California', 'Texas', 'New York', 'Florida', 'Illinois'],
    'Unemployment': [5.3, 4.8, 6.1, 3.9, 5.0]
})

# 지도 생성
map = folium.Map(location=[40, -98], zoom_start=4)

# Choropleth 레이어 추가
folium.Choropleth(
    geo_data=state_geo,
    data=state_data,
    columns=['state', 'Unemployment'],
    key_on='feature.properties.name',  # GeoJSON 파일의 특성 이름에 맞게 설정
    fill_color='YlGn',
    legend_name='Unemployment Rate (%)'
).add_to(map)

# 결과 지도 출력
map

USA CHOROPLETH
역시나 챗GPT는 못하는게 없다

 
※ 교재에 나와있는 color map 과는 색상이 조금은 달라서 chat GPT에 몇번을 검색해보았으나, 계속 같은 답변만 받음
 

728x90
반응형