일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- degree centrality
- GCP
- dynamic topic modeling
- word2vec
- sequential data
- 동적토픽모델링
- topic modeling
- Enriching Word Vectors with Subword Information
- type-hint
- sensibleness
- Holdout
- 토픽모델링
- 의미연결망
- Meena
- sbert
- 분류모델평가
- hugging face
- 구글클라우드플랫폼
- 알파베타가지치기
- 임베딩
- QANet
- 사회연결망분석
- semantic network
- 감성분석
- word representation
- Min-Max 알고리즘
- ROC-AUC Curve
- Google Cloud Platform
- 머신러닝
- 허깅페이스
- Today
- Total
Dev.log
Python 지도시각화 라이브러리: Folium 본문
본 포스팅에서는 지도위에 데이터를 표시할수 있는 Python 라이브러리 Folium에 대해 진행해보도록 하겠습니다.
Folium은 지리 공간 데이터를 시각화하는 데 사용되는 Python 라이브러리입니다. 또한 leaflet.js 기반으로 이루어졌으며, 시각화를 위해 OpenStreetMap, Mapbox, Stamen과 같은 지도 이미지들을 제공하기도 합니다. 자세한 내용은 아래 공식 도큐멘트에서 확인할 수 있습니다.
Folium — Folium 0.12.1 documentation
folium builds on the data wrangling strengths of the Python ecosystem and the mapping strengths of the leaflet.js library. Manipulate your data in Python, then visualize it in on a Leaflet map via folium. Concepts folium makes it easy to visualize data tha
python-visualization.github.io
Folium 설치
Folium의 경우 pip을 통한 설치와 anaconda 환경에서 conda를 통해 아래와 같이 설치할 수 있습니다.
! pip install folium
! conda install -c conda-forge folium
Folium을 통한 지도 시각화
먼저 간단한 지도를 그려보겠습니다. Folium은 Map()을 통해 지도를 생성할수 있습니다. 또한 location을 통해 지도의 중심으로 지정할 위도와 경도를 입력할 수 있으며, zoom_start를 통해 지도를 얼마나 확대 할지 결정할 수 있습니다.
import folium
m = folium.Map(location = [37.544129, 127.054357],zoom_start = 14)
m
또한, 위에서 언급한거와 같이 Folium을 사용하면 Stamen Terrain, Stamen Toner, Stamen Water Color, CartoDB Positron 과 같은 다양한 타일로 지도를 만들 수 있습니다. 기본적으로 타일은 OpenStreetMap으로 설정됩니다. 각 타일셋은 지도의 다양한 기능을 보여주며 다양한 목적에 따라 시각화를 진행할 수 있습니다.
from branca.element import Figure
fig = Figure(width=550,height=350)
m=folium.Map(location=[37.544129, 127.054357],
zoom_start = 14)
fig.add_child(m)
folium.TileLayer('Stamen Terrain').add_to(m)
folium.TileLayer('Stamen Toner').add_to(m)
folium.TileLayer('Stamen Water Color').add_to(m)
folium.TileLayer('cartodbpositron').add_to(m)
folium.TileLayer('cartodbdark_matter').add_to(m)
folium.LayerControl().add_to(m)
m
지도 내 마커 추가
지도내 마커를 추가하고 싶을 땐 아래와 같이 Maker()를 통해 추가해 줄 수 있습니다.
fig = Figure(width=550,height=350)
m = folium.Map(location=[37.53897093698831, 127.05461953077439],
zoom_start=14,
)
fig.add_child(m)
folium.Marker([37.54706945947954, 127.04740975332888]).add_to(m)
folium.Marker([37.54461957910074, 127.05590699103249],
popup='<b>subway</b>').add_to(m)
folium.Marker([37.54041716624373, 127.06914637466906],
popup='<b>subway</b>',
tooltip='<i>건대입구역</i>').add_to(m)
m
지도 내 원 그리기
지도내 원과 같은 도형을 통해 범위에 대한 시각화를 진행하고 싶을 땐 CircleMaker()를 통해 시각화를 할 수 있습니다.
fig = Figure(width=550,height=350)
m = folium.Map(location=[37.53897093698831, 127.05461953077439],
zoom_start=13)
fig.add_child(m)
folium.CircleMarker(
[37.54455152583346, 127.05564949938811],
radius=100,
fill=True,
popup='popup',
tooltip='tooltip'
).add_to(m)
m
지도 내 GPS 경로 표시
먼저 데이터셋을 다운로드 해 줍니다. 본 데이터셋은 github의 tisljaricleo유저가 제공하였습니다. GPS경로와 같이 지도위에 선을 나타낼 때에는 polyline()을 사용해 주면 됩니다.
import pandas as pd
import requests
import io
url = "https://raw.githubusercontent.com/tisljaricleo/GPS-visualization-Python/main/data.csv" # Make sure the url is the raw version of the file on GitHub
download = requests.get(url).content
df = pd.read_csv(io.StringIO(download.decode('utf-8')),names=['LATITUDE', 'LONGITUDE'])
df.head(5)
list_ = df[['LATITUDE', 'LONGITUDE']].values.tolist()
fig = Figure(width=550,height=350)
center = list_[0]
m = folium.Map(location=center,
zoom_start=10)
fig.add_child(m)
folium.PolyLine(locations = list_,
).add_to(m)
m
'Python' 카테고리의 다른 글
[2021 Dev-Matching: 웹 백엔드 개발] 로또의 최고 순위와 최저 순위 (0) | 2022.04.27 |
---|---|
[2020 카카오 인턴십] 키패드 누르기 - Python (0) | 2022.04.26 |
[2021 KAKAO BLIND] 신규 아이디 추천 - Python (0) | 2022.04.26 |
Python - psycopg2을 통해 PostgreSQL 접속 (0) | 2022.04.25 |
Python Type-Hints Package (0) | 2022.04.12 |