학습 목표
- folium으로 위경도와 주소 데이터를 지도에 표현하는 방법을 알아봅니다.
핵심 키워드
- folium
- Map
- Marker
학습하기
학습 목표
- folium으로 위경도와 주소 데이터를 지도에 표현하는 방법을 알아봅니다.
핵심 키워드
- folium
- Map
- Marker
학습하기
학습 내용
scatter plot
scatter plot은 수치형 데이터가 어디 좌표에 위치하는지 출력할 때 주로 이용됩니다.
보통은 상관계수, 회귀선을 출력하는데 사용하는데 지리 데이터에서도 사용이 가능합니다.
이 scatter plot은 데이터가 어디쯤에 위치하는지를 나타냈지만 정확한 위치는 알기 어렵습니다. 지역에 따라 다른 색으로 표시했습니다.
Folium 시작하기
Folium map에 직관적으로 지역을 표시해보겠습니다.
Folium을 사용하기 위해선 직접 Anaconda prompt에 conda install -c conda-forge folium을 입력하여 설치합니다.
계속 진행할 것인지를 묻는다면 y를 눌러서 설치하면 됩니다.
Folium 사용하기
import folium
folium을 import 합니다.
df_seoul_hospital["위도"].mean()
df_seoul_hospital["경도"].mean()
결과 :
map = folium.Map(location=[df_seoul_hospital["위도"].mean(),df_seoul_hospital["경도"].mean()], zoom_start=1)
처음 folium.Map만 찍으면 세계지도가 나오지만 location과 zoom_start를 찍으면 위치를 설정할 수 있습니다.
folium에서는 tiles='Stamen Toner' 설정으로 테마를 바꿀 수 있고, popup도 출력할 수 있고, 마커도 설정할 수 있습니다.
for n in df_seoul_hospital.index:
name = df_seoul_hospital.loc[n, "상호명"]
address = df_seoul_hospital.loc[n, "도로명주소"]
popup = f"{name}-{address}"
location = [df_seoul_hospital.loc[n, "위도"], df_seoul_hospital.loc[n, "경도"]]
folium.Marker(
location = location,
popup = popup,
).add_to(map)
map
함수를 통해 마커와 팝업을 찍어낼 수 있습니다.
지도를 찍어보면 서울 외곽에 갈 수록 종합병원 수가 적다는 것을 알 수 있습니다.
결과 :
comment
(Installing on Windows)
1. Ctrl+Esc
2. Type: "anaconda prompt" (opens command prompt)
3. Type: "conda install -c conda-forge folium" (y/n)
(이전 나온 익스텐션 nbextension도 동일: conda install -c conda-forge jupyter_contrib_nbextensions)
4. Type: y
5. Type: exit() (exits the command prompt)
한 가지 의문이 생겨서 남겨 봅니다. 전체 지도를 확대해 보면 국가명, 도시, 동네 이름이 있는데 왜 팝업 표시되는 서울 지도에는 동 이름이 안 나올까요?? 그리고 댓글을 올려주시고 답변해 주시는 분들께 항상 감사합니다. 많은 도움을 받고 있습니다. ^^
강의 초반에 folium quickstart 의 새로 바뀐 주소입니다.
Getting start: https://python-visualization.github.io/folium/latest/getting_started.html
참고로 Mac에서는 Anaconda prompt가 없고 그냥 터미널에서 설치하시면 됩니다~
https://nbviewer.org/github/python-visualization/folium/blob/main/examples/Quickstart.ipynb
주소가 바뀌었는지... 한참 찾아들어갔습니다 ㅠㅠ 영상 2분 경에 나오는 폴리움 퀵스타트 문서입니다.
folium 설치 안되시는 분들은 anaconda prompt를 관리자 권한으로 실행해서 해보세요.
conda install -c conda-forge folium를 했는데도 안되시는 분들은 pip install folium으로 설치해보세요
안녕하세요. jupyter notebook에서 만든 파일을 git hub에 올리려고 하는데 어떻게 하면되나요?
git hub 계정은 있습니다.
마지막을 약국으로 했더니 너무 느리네요...
그리고 주소가 세로로 나오는건 해결 못하나요?
하기와 같이 메세지가 뜨네요..
folium 설치는 되었다고 하는데...
어떻게 해결 해야 할까요.?
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-113-f3f1221e6402> in <module>
2
3 #folium.map()
----> 4 folium.map(location=[45.5236,-122.6750])
TypeError: 'module' object is not callable
좋은 강의 감사합니다
너무 재밌네요!
제가 공부했을 당시 폴리움 한글 깨지는 문제는 주피터 노트북 자체 문제였습니다.
다른 방법으로 해결 안되실 경우 html파일을 save한뒤 열어보시면 정상작동합니다.
https://studioplug.tistory.com/334?category=894762
마지막에 한글 깨지는거 아나콘다 프롬프트에서
pip install git+https://github.com/python-visualization/branca.git@master
설치해서 해결했습니다!
데이터 분석에서 통계부터 데이터 전처리, 지도 표기 등 많은 것을 배워갈 수 있었습니다. 감사합니다. 남은 두 강의도 기대됩니다!
영상을 보면서 먼저 스스로 코드 작성해보고 강의랑 비교해보는데, 아무리 해도 저는 서울 시내 지도에 표식이 찍히질 않아서 몇 번씩 다시 시도하다가 다시 보니, 위도 경도 위치를 반대로 썼더라구요 -.- 아마도 외국 다른 엉뚱한 곳에 좌표 찍혀 있었을 듯.... 다시 한번 꼼꼼함이 중요함을 느낍니다 ㅋㅋㅋ
왜 syntax 에러인지 모르겠는데 이유가 몰까요..ㅠㅠ
type object 'map' has no attribute 'add_child' 라고 하는데 add_child가 뭘까요?
전... Folium 지도가 뜨지 않네요. 분명 뭔가 표시되긴 하는데 invisible한 뭔가가...ㅎㅎㅎ
마지막에 지도에 표기할때 한글이 깨져서 나오는데요. 어떻게 해야 할까요???