당신은 주제를 찾고 있습니까 “파이썬 지도 – Folium 한번에 끝내기 – 지도 데이터 시각화 라이브러리“? 다음 카테고리의 웹사이트 you.maxfit.vn 에서 귀하의 모든 질문에 답변해 드립니다: you.maxfit.vn/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 이수안컴퓨터연구소 이(가) 작성한 기사에는 조회수 8,298회 및 좋아요 148개 개의 좋아요가 있습니다.
파이썬 지도 주제에 대한 동영상 보기
여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!
d여기에서 Folium 한번에 끝내기 – 지도 데이터 시각화 라이브러리 – 파이썬 지도 주제에 대한 세부정보를 참조하세요
데이터 시각화 Data Visualization
Folium 한번에 끝내기
지도 데이터 시각화 라이브러리
Choropleth, GeoJson, TopoJson
Folium 따라하며 배우기
Folium 한번에 제대로 배우기
Colab Jupyter Notebook: https://colab.research.google.com/drive/1jQBf8NMVBmlg89hdN5KJwb8sMpkHJkPy?usp=sharing
이수안 컴퓨터 연구소 (SuanLab)
www.suanlab.com
파이썬 지도 주제에 대한 자세한 내용은 여기를 참조하세요.
지도 시각화 도구 Folium 사용법을 파헤쳐보자! – 테디노트
folium은 leaflet.js 기반으로 만들어진 Python 지도 시각화 라이브러리 입니다. … folium을 사용하여 인터랙티브한 지도를 생성하고 마커를 추가하여 …
Source: teddylee777.github.io
Date Published: 11/12/2022
View: 7134
Python 지도 시각화 – Folium
Python 시각화 모듈 Folium. … Folium은 leaftlet.js를 기반으로 지도를 그려주는 Python 모듈인데, 다른 시각화 패키지에 비해 상대적으로 오래 …
Source: velog.io
Date Published: 8/29/2022
View: 4777
folium(1) 시작하기( 패키지 설치하기, 지도 불러 오기, 지도 종류 …
파이썬에서 지도 위에 점을 찍거나, 선을 그리거나, 원을 그리는 등 지도에 원하는 정보를 시각적으로 나타내는 지도 시각화 패키지로 제일 유명한 …
Source: blog.naver.com
Date Published: 10/15/2022
View: 6617
파이썬 -folium 지도시각화 – Yoo의 개발공부 블로그
파이썬으로 지도를 시각화 할 때 사용하는 라이브러리인 folium인 기초적인 문법을 활용하는 방법을 포스팅 해보겠습니다.
Source: yoo-young.tistory.com
Date Published: 2/28/2021
View: 1484
[지도 데이터 시각화] Part 4. Folium 살펴보기
js 라이브러리로, 어떻게하면 프론트 단에서 지도를 시각화하는지 자세히 설명되어 있습니다. 2를 위해서는, 먼저 파이썬에서 프론트단에 내가 원하는 …
Source: dailyheumsi.tistory.com
Date Published: 11/9/2021
View: 8688
[Python] 파이썬 지도 데이터 시각화
지도 위에 데이터를 시각화를 하기 위한 방법. 1. folium 패키지를 이용하는 방법. Leaflet.js을 활용한다. https://python-visualization.github.io/ …
Source: ssongblog.tistory.com
Date Published: 11/10/2021
View: 1350
folium 을 통한 지도 시각화 및 마커(marker) 찍기
python에서 제공해주는 라이브러리로서 지도를 다루는 대표적인 라이브러리다. 설치법 !pip install folium. 사용법. import folium as …
Source: continuous-development.tistory.com
Date Published: 6/27/2022
View: 5435
[Python]지도 데이터 시각화 – Folium 기초 실습하기
[Python]지도 데이터 시각화 – Folium 기초 실습하기. 우주먼지의하루 2020. 6. 17. 00:06. 320×100. 먼저 Folium은 Python data, leaflet.js 맵입니다.Source: rk1993.tistory.com
Date Published: 9/9/2022
View: 7445
파이썬 연습 – Folium으로 고령자 지도 그리기 – 놀면 뭐하니
파이썬 연습 – Folium으로 고령자 지도 그리기 … 그리고 서울 지도위에 시각화를 진행해야 하기 때문에 서울의 좌표값을 준비했다.
Source: choihyuunmin.tistory.com
Date Published: 4/1/2022
View: 5990
주제와 관련된 이미지 파이썬 지도
주제와 관련된 더 많은 사진을 참조하십시오 Folium 한번에 끝내기 – 지도 데이터 시각화 라이브러리. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.
![Folium 한번에 끝내기 - 지도 데이터 시각화 라이브러리](https://i.ytimg.com/vi/Jt9nycjTGZs/maxresdefault.jpg)
주제에 대한 기사 평가 파이썬 지도
- Author: 이수안컴퓨터연구소
- Views: 조회수 8,298회
- Likes: 좋아요 148개
- Date Published: 2020. 8. 4.
- Video Url link: https://www.youtube.com/watch?v=Jt9nycjTGZs
지도 시각화 도구 Folium 사용법을 파헤쳐보자!
지도위에 데이터를 interactive하게 표현해 주는 대표적인 파이썬 지도 시각화 라이브러리 folium 에 대해서 알아보고 그 사용법을 파헤쳐보도록 하겠습니다.
folium 개요
folium은 leaflet.js 기반으로 만들어진 Python 지도 시각화 라이브러리 입니다.
도큐먼트
folium을 사용하여 인터랙티브한 지도를 생성하고 마커를 추가하여 시각화하거나 원으로 범위를 표기하고 html 파일로 내보내기 등을 수행할 수 있습니다.
folium 설치
pip install folium 으로 라이브러리를 설치할 수 있습니다.
! pip install folium
모듈 import
import folium
기본 좌표 설정
location 에 위도, 경도 정보를 입력하여 입력한 위,경도 좌표를 기준으로 지도를 그릴 수 있습니다.
이때 zoom_start 정보를 지정하여 확대의 정도를 지정할 수 있습니다.
참고: zoom_start 의 범위는 최대 18 입니다.
# 위도 latitude = 37.394946 # 경도 longitude = 127.111104
m = folium . Map ( location = [ latitude , longitude ], zoom_start = 17 , width = 750 , height = 500 ) m
마커 추가
location : 마커를 추가할 위도/경도 좌표 를 입력 후
popup : 표기할 팝업 문구 지정 (마우스 클릭시 표기되는 문구)
tooltip : 표기할 툴팁 지정 (마우스 오버시 표기되는 문구)
마커를 생성 후 기존에 생성된 지도 m 에 추가합니다.
folium . Marker ([ latitude , longitude ], popup = “판교역” , tooltip = “판교역 입구” ). add_to ( m ) m
마커에 대한 스타일 변경도 가능합니다. 스타일 변경시 icon 파라미터에 folium.Icon(color=?, icon=?) 을 지정합니다.
folium . Marker ([ latitude , longitude ], popup = “판교역” , tooltip = “판교역 입구” , icon = folium . Icon ( ‘red’ , icon = ‘star’ ), ). add_to ( m ) m
popup 이나 tooltip 에 다음과 같이 html 코드 를 삽입하여 이미지를 표기하거나 심지어 YouTube 영상도 삽입할 수 있습니다.
folium . Marker ([ latitude , longitude ], popup = ‘‘ , tooltip = “판교역 입구” ). add_to ( m ) m
folium . CircleMarker ([ latitude , longitude ], color = ‘tomato’ , radius = 50 , tooltip = ‘판교역 상권’ ). add_to ( m ) m
import pandas as pd
df = pd . read_csv ( ‘소상공인시장진흥공단_상가(상권)정보_경기_202109.csv’ ) df . head ( 3 )
상가업소번호 상호명 지점명 상권업종대분류코드 상권업종대분류명 상권업종중분류코드 상권업종중분류명 상권업종소분류코드 상권업종소분류명 표준산업분류코드 … 구우편번호 신우편번호 동정보 층정보 호정보 전화번호 경도 위도 상권번호 데이터기준일자 0 20713599 눈높이러닝센타 NaN R 학문/교육 R13 학문교육기타 R13A01 학습지보급 P85503 … 423010.0 14221.0 NaN NaN 2 02-2066-9109 126.858147 37.478530 NaN 2016-01-26 1 20642964 유니베라 구성대리점 D 소매 D16 화장품소매 D16A01 화장품판매점 G47813 … 446525.0 16919.0 NaN 2 NaN 031-8005-7071 127.116575 37.294690 NaN 2021-10-22 2 24510829 엠아이케이21 NaN D 소매 D14 운동/경기용품소매 D14A01 운동/경기용품 G47631 … 463937.0 13622.0 901 NaN 90 070-8699-8912 127.123291 37.340903 NaN 2016-01-26 3 rows × 42 columns
pd . Series ( df . columns )
0 상가업소번호 1 상호명 2 지점명 3 상권업종대분류코드 4 상권업종대분류명 5 상권업종중분류코드 6 상권업종중분류명 7 상권업종소분류코드 8 상권업종소분류명 9 표준산업분류코드 10 표준산업분류명 11 시도코드 12 시도명 13 시군구코드 14 시군구명 15 행정동코드 16 행정동명 17 법정동코드 18 법정동명 19 PNU코드 20 대지구분코드 21 대지구분명 22 지번본번지 23 지번부번지 24 지번주소 25 도로명코드 26 도로명 27 건물본번지 28 건물부번지 29 건물관리번호 30 건물명 31 도로명주소 32 구우편번호 33 신우편번호 34 동정보 35 층정보 36 호정보 37 전화번호 38 경도 39 위도 40 상권번호 41 데이터기준일자 dtype: object
sub_df = df . loc [ df [ ‘행정동명’ ]. isin ([ ‘백현동’ , ‘정자동’ , ‘삼평동’ ])] sub_df . head ( 3 )
상가업소번호 상호명 지점명 상권업종대분류코드 상권업종대분류명 상권업종중분류코드 상권업종중분류명 상권업종소분류코드 상권업종소분류명 표준산업분류코드 … 구우편번호 신우편번호 동정보 층정보 호정보 전화번호 경도 위도 상권번호 데이터기준일자 35 24527550 코리아세븐분당 정자3호점 D 소매 D03 종합소매점 D03A01 편의점 G47122 … 463834.0 13612.0 NaN 1 NaN 031-718-9733 127.113508 37.362807 NaN 2016-01-27 102 28523933 처가방 NaN Q 음식 Q10 별식/퓨전요리 Q10A02 샤브샤브전문 I56111 … 463420.0 13529.0 NaN NaN NaN 031-5170-1908 127.112071 37.392785 NaN 2016-11-17 244 20786763 백현 NaN L 부동산 L01 부동산중개 L01A01 부동산중개 L68221 … 463887.0 13532.0 NaN 1 1 031-8016-8100 127.110756 37.389333 NaN 2017-10-02 3 rows × 42 columns
sub_df [[ ‘위도’ , ‘경도’ , ‘상호명’ ]]
위도 경도 상호명 35 37.362807 127.113508 코리아세븐분당 102 37.392785 127.112071 처가방 244 37.389333 127.110756 백현 284 37.401265 127.108639 야쿤커피앤토스트판교점 678 37.368770 127.112015 해동검도 … … … … 514805 37.397736 127.111414 에세이스튜디오 515501 37.362357 127.113513 아몽옷고치는전문집 515824 37.384859 127.111408 티랩 516332 37.392951 127.118687 우디크리빙 516457 37.395832 127.113503 써브웨이 3322 rows × 3 columns
from folium.plugins import MarkerCluster m = folium . Map ( location = [ latitude , longitude ], zoom_start = 15 ) coords = sub_df [[ ‘위도’ , ‘경도’ ]] marker_cluster = MarkerCluster (). add_to ( m ) for lat , long in zip ( coords [ ‘위도’ ], coords [ ‘경도’ ]): folium . Marker ([ lat , long ], icon = folium . Icon ( color = “green” )). add_to ( marker_cluster ) m
서울 지도에서 행정 구역별 표시
import requests import json # 서울 행정구역 json raw파일(githubcontent) r = requests . get ( ‘https://raw.githubusercontent.com/southkorea/seoul-maps/master/kostat/2013/json/seoul_municipalities_geo_simple.json’ ) c = r . content seoul_geo = json . loads ( c )
서울 지역의 구별 boundary 시각화
m = folium . Map ( location = [ 37.559819 , 126.963895 ], zoom_start = 11 , ) folium . GeoJson ( seoul_geo , name = ‘지역구’ ). add_to ( m ) m
tiles 옵션 변경을 통해 지도의 테마 변경
지도의 기본 테마(tiles)는 OpenStreetMap 으로 설정되어 있는데, 이를 변경하여 다른 지도 테마를 적용할 수 있다.
Stamen Toner 적용시
m = folium . Map ( location = [ 37.559819 , 126.963895 ], zoom_start = 11 , tiles = ‘Stamen Toner’ ) folium . GeoJson ( seoul_geo , name = ‘지역구’ ). add_to ( m ) m
cartodbpositron 적용시
m = folium . Map ( location = [ 37.559819 , 126.963895 ], zoom_start = 11 , tiles = ‘cartodbpositron’ ) folium . GeoJson ( seoul_geo , name = ‘지역구’ ). add_to ( m ) m
서울시 자치구별 상권정보 시각화
seoul 데이터프레임에 소상공인시장진흥공단에서 제공하는 서울시 상권정보 csv 파일을 로드합니다.
seoul = pd . read_csv ( ‘소상공인시장진흥공단_상가(상권)정보_서울_202109.csv’ ) # 필요한 컬럼 정보만 가져옵니다 seoul = seoul [[ ‘시군구명’ , ‘상권업종대분류명’ , ‘상권업종중분류명’ , ‘위도’ , ‘경도’ ]] seoul
시군구명 상권업종대분류명 상권업종중분류명 위도 경도 0 송파구 소매 의복의류 37.493054 127.147321 1 영등포구 소매 건강/미용식품 37.520613 126.907168 2 성동구 소매 취미/오락관련소매 37.566857 127.049018 3 동작구 음식 한식 37.487105 126.980952 4 종로구 음식 한식 37.572387 126.981794 … … … … … … 325875 마포구 부동산 부동산중개 37.557971 126.907290 325876 은평구 소매 시계/귀금속소매 37.604195 126.936049 325877 은평구 소매 애견/애완/동물 37.596790 126.905613 325878 광진구 음식 커피점/카페 37.556004 127.085023 325879 강북구 생활서비스 이/미용/건강 37.629348 127.017622 325880 rows × 5 columns
시각화 모듈을 import 하고 서울시의 업종별 개수를 시각화합니다.
import matplotlib.pyplot as plt import seaborn as sns # 한글 폰트 설정 plt . rcParams [ ‘font.family’ ] = ‘NanumGothic’ plt . figure ( figsize = ( 12 , 30 )) sns . countplot ( y = seoul [ ‘상권업종중분류명’ ], order = seoul [ ‘상권업종중분류명’ ]. value_counts (). index ) plt . yticks ( fontsize = 12 ) plt . title ( ‘서울시 업종별 개수’ ) plt . show ()
한식 업종이 가장 많은 개수를 차지합니다. 커피점/카페 업종이 가장 많은 업종일 줄 알았는데요. 한식, 이미용/건강, 종합소매업 다음 4위를 차지하였습니다.
그럼 커피점/카페 업종은 자치구별로 어느 곳에 가장 많이 분포해 있는지 시각화해 보겠습니다.
plt . figure ( figsize = ( 12 , 10 )) seoul . loc [ seoul [ ‘상권업종중분류명’ ] == ‘커피점/카페’ ]. groupby ( ‘시군구명’ )[ ‘상권업종대분류명’ ]. count () \ . sort_values (). plot ( kind = ‘barh’ , color = ‘royalblue’ ) plt . yticks ( fontsize = 12 ) plt . title ( ‘서울시 자치구별 커피점/카페 업종수’ ) plt . show ()
강남구가 가장 많은 수를 차지하고 강북구는 가장 적은 수를 차지하였습니다.
이제 이를 folium 위에 시각화를 해보겠습니다.
seoul_coffee = seoul . loc [ seoul [ ‘상권업종중분류명’ ] == ‘커피점/카페’ ] seoul_coffee
시군구명 상권업종대분류명 상권업종중분류명 위도 경도 29 종로구 음식 커피점/카페 37.583149 127.000171 109 도봉구 음식 커피점/카페 37.658728 127.034746 190 마포구 음식 커피점/카페 37.554599 126.929692 200 강서구 음식 커피점/카페 37.580941 126.813358 206 양천구 음식 커피점/카페 37.522055 126.842935 … … … … … … 325715 서대문구 음식 커피점/카페 37.557293 126.950705 325754 금천구 음식 커피점/카페 37.468602 126.902047 325788 마포구 음식 커피점/카페 37.540241 126.948240 325791 강서구 음식 커피점/카페 37.532109 126.839080 325878 광진구 음식 커피점/카페 37.556004 127.085023 19703 rows × 5 columns
m = folium . Map ( location = [ 37.559819 , 126.963895 ], zoom_start = 12 , tiles = ‘cartodbpositron’ ) folium . GeoJson ( seoul_geo , name = ‘지역구’ ). add_to ( m ) marker_cluster = MarkerCluster (). add_to ( m ) for lat , long in zip ( seoul_coffee [ ‘위도’ ], seoul_coffee [ ‘경도’ ]): folium . Marker ([ lat , long ], icon = folium . Icon ( color = “green” )). add_to ( marker_cluster ) m
seoul_group_data = seoul . loc [ seoul [ ‘상권업종중분류명’ ] == ‘커피점/카페’ ]. groupby ( ‘시군구명’ )[ ‘상권업종중분류명’ ]. count () seoul_group_data
시군구명 강남구 2253 강동구 763 강북구 330 강서구 1048 관악구 593 광진구 771 구로구 596 금천구 444 노원구 534 도봉구 373 동대문구 499 동작구 526 마포구 1427 서대문구 704 서초구 1277 성동구 640 성북구 668 송파구 1125 양천구 543 영등포구 859 용산구 730 은평구 575 종로구 1082 중구 895 중랑구 448 Name: 상권업종중분류명, dtype: int64
choropleth 를 사용하여 시각화를 하면 업종 별 개수에 따른 색상의 차이를 두어 시각화를 해줍니다.
m = folium . Map ( location = [ 37.559819 , 126.963895 ], zoom_start = 11 , tiles = ‘cartodbpositron’ ) folium . GeoJson ( seoul_geo , name = ‘지역구’ ). add_to ( m ) m . choropleth ( geo_data = seoul_geo , data = seoul_group_data , fill_color = ‘YlOrRd’ , # 색상 변경도 가능하다 fill_opacity = 0.5 , line_opacity = 0.2 , key_on = ‘properties.name’ , legend_name = “지역구별 커피 업종 수” ) m
bins 를 만들어 1/4, 2/4, 3/4분위수별로 구간을 나누어 시각화할 수 있습니다.
bins = list ( seoul_group_data . quantile ([ 0 , 0.25 , 0.5 , 0.75 , 1 ])) m = folium . Map ( location = [ 37.559819 , 126.963895 ], zoom_start = 11 , tiles = ‘cartodbpositron’ ) folium . GeoJson ( seoul_geo , name = ‘지역구’ ). add_to ( m ) m . choropleth ( geo_data = seoul_geo , data = seoul_group_data , fill_color = ‘YlOrRd’ , # 색상 변경도 가능하다 fill_opacity = 0.5 , line_opacity = 0.2 , key_on = ‘properties.name’ , legend_name = “지역구별 커피 업종 수” , bins = bins ) m
Html 파일로 저장
저장은 save() 함수로 쉽게 html 파일로 저장할 수 있습니다.
m . save ( ‘map.html’ )
참고 (References)
관련 글 더보기
– Matplotlib 컬러명(color name), 팔레트(palette) 이름
– Seaborn의 통계 차트 및 데이터 시각화 예제
– Matplotlib을 활용한 데이터 시각화 그래프 예제
– Matplotlib.pyplot 기본 튜토리얼, 스타일, 캔버스
– 2019년 KBO 관객수를 크롤링하여 matplotlib으로 시각화 해보겠습니다
파이썬 지도 시각화 패키지-folium(1) 시작하기( 패키지 설치하기, 지도 불러 오기, 지도 종류 확인, 파라미터 정보)
#파이썬,#folium,#지도 불러오기,#folium 설치하기, #folium map 지도 종류, #지도 시각화,#python map 불러오기, #python folium basemap,#folium map 파라미터
파이썬에서 지도 위에 점을 찍거나, 선을 그리거나, 원을 그리는 등 지도에 원하는 정보를 시각적으로 나타내는 지도 시각화 패키지로 제일 유명한 것이 folium입니다.
다른 패키지에 비해서 상대적으로 오래 되어서 안정적이고, map을 겹쳐서 그려줌으로 다양한 시각화가 가능합니다. 지도 시각화 결과과 html로 저장이 가능하다는 장점이 있습니다. 그리고, pandas 패키지와 함께 사용하면 쉽고 빠르게 지도 시각화가 가능해집니다.
다음 화면은 서울시 공공 자전거인 따릉이 대여소 위치를 folium으로 표시한 사례 입니다.
파이썬 -folium 지도시각화
글 개요
파이썬으로 지도를 시각화 할 때 사용하는 라이브러리인 folium인 기초적인 문법을 활용하는 방법을 포스팅 해보겠습니다.
글 본문
일단, folium을 설치해봅시다. 아나콘다 가상환경이면, 터미널에서 아래 코드를 입력해주셔도 되고, 주피터 노트북에서도셀 실행시켜도 괜찮습니다.
!pip install folium
지도를 주피터 노트북에 실행시켜보겠습니다.
import folium m = folium.Map( location = [37.544129, 127.054357], zoom_start = 11 ) m
# tlies = OpenStreetMap 디폴트값 m = folium.Map( location =[37.544129, 127.054357], zoom_start = 14, tiles = ‘Stamen Terrain’) m
결과
location 옵션에는 튜플 형식이나 리스트 형식으로 위도와 경도를 넣어주시면 됩니다. zoom_start 옵션은 확대를 얼마만큼 할것인지를 결정하는 옵션입니다 보통 최대 18 이후는 확대정도가 18이랑 비슷합니다.
tiles 옵션
tiles 옵션은 지도의 모양을 설정하는 방법입니다. 예를들어 아래코드를 보시면 더욱 이해가 빨리 될거같습니다.
import folium # tlies = OpenStreetMap 디폴트값 m = folium.Map( location =[37.544129, 127.054357], zoom_start = 14, tiles = ‘Stamen Terrain’) # 0 ~ 18 허용되는 범위 조금씩 확대됨 m
결과 1
이렇게 지도 모양을 바꿀 수 있습니다. 지도를 더욱 다양하게 바꿀 수 있으니, 구글에서 옵션을 찾아서 원하는 지도로 바꿔보세요.
folium Marker 지도에 마커 표시하기
이제 지도 시각화를 했으니 원하는 곳에 마커를 표시하고 싶을 때가 있습니다. folium은 그 기능을 Marker라는 함수를 통해 제공합니다.
import folium # 기본지도 m = folium.Map( location = [37.544129, 127.054357], zoom_start = 14 ) 원하는 장소의 위도 경도를 가져와 기본지도에 마커 표시하기 folium.Marker( location = [37.544129, 127.054357] ).add_to(m)
결과 2
이렇게 원하는 장소의 위도와 경도를 location 욥션에 리스트형태로 데이터를 넣러주면 지도에 마커로 표시됩니다. 그렇다면 이제 해당 마커가 어떤 마커인지 알 필요가 있지 않을까요? 그럴때 사용하는 옵션이 두개 정도 있있습니다.
1. popup
2. tooltip
두 개 옵션을 사용하면, 해당 마커를 어떤 마커인지 설명할 수 있습니다.
eimport folium m = folium.Map( location =[37.544129, 127.054357], zoom_start = 14, tiles = ‘OpenStreetMap’) folium.Marker( location = [37.54713854802594, 127.04742381383305], popup = ‘Subway’, tooltip=’뚝섬역’ ).add_to(m)
결과
popup 이라는 옵션과 tooltip의 옵션의 차이는 popup옵션은 마커를 클릭했을 때 설명이 나오고 tooltip옵션은 마우스를 마커에 올려놓고 있으면 뚝섬역이라고 표시해줍니다. 또한, popup옵션과 tooltip옵션은 html문법이 적용할 수 있습니다.
마커 클릭했을 때 사이트 접속하기
마커를 클릭했을 때 특정사이트로 넘기는 방법이 있습니다.
import folium m = folium.Map( location =[37.544129, 127.054357], zoom_start = 14, tiles = ‘OpenStreetMap’) folium.Marker(location = [37.40222933783297, 127.10868244211787], popup = ‘카카오 판교오피스‘, tooltip = ‘kakao‘).add_to(m) m
popup 옵션과 tooltip옵션은 html문법이 적용이 된다고 했습니다. html문법을 활용해 마커를 클릭하였을 때 마커에 해당하는 홈페이지로 넘어갈 수 있게 만들 수 있습니다.
결과
tooltip옵션이 마우스를 마커에 올려놓기만 해도 카카오라고 뜨고 마커를 클릭했을 때 사이트 접속이 됩니다.
Marker custom 해보기
Marker는 기본적으로 위 이미지에 있는것 처럼 파란색 marker로 표시됩니다. 하지만, Marker 함수내에는 marker을 커스텀을 할 수 있습니다.
import folium m = folium.Map( location = [37.544129, 127.054357], zoom_start = 11 ) folium.Marker( location = [37.544129, 127.054357], icon = folium.Icon( color = ‘black’, icon = ‘info-sign’ ).add_to(m)
결과
icon색을 검은색으로 지정하고 모양은 info-sign모양을 정했습니다. folium.Icon함수안에 있는 icon옵션을 커스텀을 할 수 있습니다. 이 모양을 커스텀 하는걸 보여드리겠습니다.
import folium m = folium.Map( location = [37.544129, 127.054357], zoom_start = 11 ) folium.Marker( location = [37.544129, 127.054357], icon = folium.Icon( color = ‘black’, icon = ‘amazon’, prefix=’fa’ ).add_to(m)
icon 모양을 amazon마크로 커스텀을 할 수 있습니다. 커스텀을 할 수 있는 이유는 prefix라는 옵션 때문에 가능합니다. prefix 옵션은 두가지가 있습니다. fa, glyphicon가 존재합니다.
prefix = ‘fa’ 옵션을 선택할 때 icon 커스텀하는 사이트 아래 사이트에서 icon를 선택해서 icon에 넣어주시면 됩니다.
prefix = ‘glyphicon’ 옵션을 선택할 때 icon 선택하는 사이트
하지만, 두 개의 사이트에 있는 모든 icon이 다 되는게 아니더라구요. 되는게 있고 안되는게 존재합니다. ㅜ ㅜ
실습
수원역에 있는 에이케이플라자를 지도에 표시하고 icon를 백화점으로 표시하고 마우스를 올리면 AK플라자글씨를 나타나게 한다음 클릭했을 때 AK플라자 사이트로 연결하는 실습을 해보겠습니다. 일단 준비해야 할것은 AK플라자 수원점 위도 경도가 필요합니다. 위도 경도를 쉽게 얻을 수 있는 방법은 구글지도를 활용하면 쉽게 얻을 수 있습니다. 구글지도에서 AK플라자를 검색하고 지도를 확대해 마우스 우클릭을 하면 위도 경도를 가져올 수 있습니다.
import folium m = folium.Map( location = [37.26788961962039, 127.00454839493325], zoom_start = 14 ) folium.Marker( location = [37.265348793039045, 127.00047789618888], icon = folium.Icon( color = ‘black’, icon = ‘building’, prefix = ‘fa’ ), popup = “akplaza“, tooltip = ‘AK플라자 수원역점’ ).add_to(m)
Ssong’s DataLab :: [Python] 파이썬 지도 데이터 시각화
[python][folium] geojson을 이용한 지도그리기 (1)원하는 형태의 시군을 이용하여 229개의 시군 지도를 만들어 보려고한다. python을 이용해서 folium 작업을 하기 이전에 geojson 파일을 다운받는 방법부터 설명하려고 한다. www.gisdeveloper.co.kr/?p=2332 대
mjs1995.tistory.com
[Python] 시각화 사용법 – folium 을 통한 지도 시각화 및 마커(marker) 찍기
반응형
folium 란?
python에서 제공해주는 라이브러리로서 지도를 다루는 대표적인 라이브러리다.
설치법
!pip install folium
사용법
import folium as g
이것을 사용하기 위해서는 위도 경도를 알아야 한다. 네이버에서 검색을 하거나 구글맵을 사용하면 위도와 경도를 알 수 있다.
#Map이라는 함수에서 location으로 처음 화면이 나오는 부분을 설정해준다. # 이 [] 부분에서는 위도와 경도가 들어간다. # zoom_start 는 처음 지도를 봤을때 확대 정도이다. g_map = g.Map(location=[37.509671,127.055517],zoom_start=18) g_map
Map이라는 함수에서 location으로 처음 화면이 나오는 부분을 설정해준다.
# 지도에 마커 표시
# option marker = g.Marker([37.509671, 127.055517], # 마커를 찍는 과정이다. 해당 위치의 마커를 찍고 popup=’campus seven’, # 해당 마커의 이름을 넣어준다. icon = g.Icon(color=’blue’))# 해당 아이콘의 색깔을 지정해준다. marker.add_to(g_map) # 마지막으로 위에 만들었던 맵에다가 marker를 add 해준다. g_map # 그 후 g_map을 본다.
해당 명령어로 내가 만든 지도를 html 형식으로 저장 할 수 있다.
웹 형태로 저장 된것은 우리가 jupyter에서 보는 것과 같은 형태로 볼 수 있다.
원 형태로 나타내기
marker02 = g.CircleMarker([37.509671,127.055517], # CircleMarker를 통해 원형으로 보이게 한다. radius=100, # 범위 color=’skyblue’, # 선 색깔 popup=’campus seven’, # 원의 의름 fill_color = ‘skyblue’ # 채워질 원의 색깔 ) marker02.add_to(g_map) # 위에서 만들었던 map에 반영된다.
지도의 스타일 옵션
# 이 옵션을 통해 해당 지도의 스타일을 바꿀수 있다. tiles=” ”OpenStreetMap” ”Stamen Terrain”, “Stamen Toner”, “Stamen Watercolor” ”CartoDB positron”, “CartoDB dark_matter” ”Mapbox Bright”, “Mapbox Control Room” (Limited zoom) ”Cloudmade” (Must pass API key) ”Mapbox” (Must pass API key) 이렇게 다양한 스타일이 있다.
# Stamen Terrain
# Stamen Toner
# Stamen Terrain
예제)
이렇게 위도 경도에 대한 데이터가 있을 때
처음에 맵 위치를 잡는다.
그다음 마커위치를 잡는다. for문을 사용해서 해당하는 부분을 모두 마커를 찍게 하였다.
color를 바꿔서 이렇게도 가능하다.
예제)
해당 파일을 읽고
필요한 컬럼만 빼온다.
이 해당하는 조건을 맞추기 위해 조건을 걸어 해당 데이터만 가져온다.
이것 또는
이러한 형태로 하는 것도 가능하다.
처음에는 맵부터 띄운다.
그다음 마커를 찍는 형식으로 한다.
반응형
파이썬 연습 – Folium으로 고령자 지도 그리기
728×90
1) 데이터
먼저 지역구별 고령인구를 확인하기 위해 서울시 열린데이터 광장의 ‘서울시 고령자현황(구별) 데이터’를 활용했고,
지역구가 나누어진 지도를 Folium 지도상에 표시하기 위해
krksap.tistory.com/1751 이 게시글의 ‘skorea_municipalities_geo_simple.json’ 파일을 이용했다.
서울시 열린데이터 광장의 json파일은 인식이 되지 않아 수정이 필요했는데
아직 거기까진 무리가 있기 떄문에 사용하기 좋게 수정되어 있는 파일을 가져왔다.
그리고 서울 지도위에 시각화를 진행해야 하기 때문에 서울의 좌표값을 준비했다.
2) 실행
먼저 folium을 설치해주고
고령인구 데이터를 가져왔다.
기존 고령인구 데이터를 보기 좋게 자치구, 동, 총계, 남자와 여자 데이터만 추려내어 가져왔다.
총 425개의 데이터가 있음을 확인할 수 있다.
그 다음 나중에 json 파일과 매핑시키기 위해서 자치구별 인구를 합산했다.
※ csv데이터의 값 중 정수형에 천 단위 구분 기호(,) 가 들어있다면 데이터타입이 정수형(int)으로 나오지 않는다.(object)
반드시 구분 기호를 제거하고 실시!
이거는 ‘동’ 단위별로 결측값이 생길 수 있기 때문에 결측값을 제거하는 과정에서 사용했던 방법이다.
하지만 지역구별로 합계를 냈기 때문에 지금 이 과정에서는 생략해도 상관없다.
그래도 설명을 하자면 fillna를 통해 결측값을 제거하는데 method 는 pad방식 즉, 결측값의 위에 있는 값으로 채운다는
뜻이다. 반대로 뒷방향으로 채우기 위해서는 method = ‘bfill’ 또는 ‘backfill’을 사용하면 된다.
다음은 json파일을 가져온다. json파일을 geo_str에 저장시키고 확인해보면 ‘feature’ 안의 id에도 있고,
‘feature’ 안에 있는 ‘properties’의 안에 ‘name’ 항목에도 들어있는 것을 확인할 수 있다. 잘 기억해두자.
서울시의 지도를 가져왔다. 미리 알아둔 서울의 좌표값을 입력하고, zoom_start를 통해서 지도를 확대하거나
축소할 수 있다. 지금은 10.5로 지정해놓은 모습이고
이건 13으로 확대시킨 모습이다. zoom_start가 커지면 커질수록 지도는 확대되고 반대로 작아지면 축소된다.
이부분에서 4시간정도 헤맨거같다. 먼저 준비해둔 csv파일을 자치구별로 묶지 않아서 오류가 났었는데,
fill_color 부분에서
‘TypeError: ufunc ‘isnan’ not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ”safe”’ 에러가 뜨는 바람에 더 헤맨거 같다.
결론은, csv파일과 json파일을 잘 매핑해야 하는것 같다..
하나씩 설명하자면 , geo_data는 json 파일을 불러오는 거고 data에는 csv파일을 불러와 매핑한다.
columns는 csv파일에서 가져올 열을 설정하고 fill_color는 지도상에 데이터를 표시할 색상을 지정한다.
BuGn’, ‘BuPu’, ‘GnBu’, ‘OrRd’, ‘PuBu’, ‘PuBuGn’, ‘PuRd’, ‘RdPu’, ‘YlGn’, ‘YlGnBu’, ‘YlOrBr’, ‘YlOrRd’ 이렇게 총 12가지
옵션이 있다.
맨 밑의 key_on은 앞서 json에서 설명했던 것과 같이 자치구의 key값을 적어주면 된다.
여기에 몇 개의 항목이 더 있지만 아직 더 공부해야 하기 때문에 추후 업로드 해야겠다.
아무튼 저 코드를 실행시키게 되면
이렇게 영롱하고 예쁜 지도를 볼 수 있다. 6시간을 이 지도에 투자했다.. 아직 folium에 공부할 게 산더미지만
그래도 결과물을 보니 뿌듯하다!
키워드에 대한 정보 파이썬 지도
다음은 Bing에서 파이썬 지도 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.
이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!
사람들이 주제에 대해 자주 검색하는 키워드 Folium 한번에 끝내기 – 지도 데이터 시각화 라이브러리
- 이수안
- 컴퓨터
- 연구소
- SuanLab
- 데이터 과학
- Data Science
- 데이터 시각화
- Data Visualization
- 데이터 분석
- Data Analysis
- Folium
- Seaborn
- Pandas
- NumPy
- 지도 데이터
- 지도 시각화
- Map Visualization
Folium #한번에 #끝내기 #- #지도 #데이터 #시각화 #라이브러리
YouTube에서 파이썬 지도 주제의 다른 동영상 보기
주제에 대한 기사를 시청해 주셔서 감사합니다 Folium 한번에 끝내기 – 지도 데이터 시각화 라이브러리 | 파이썬 지도, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.