• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

folium popup 한글 깨지는 현상

20.03.04 21:42 작성 조회수 481

1

안녕하세요 강사님. 강의 재밌게 잘 보고 있습니다.  이미지와 같이 popup에서 한글이 깨져 나와 문의드립니다. 인코딩도 다양하게 시도해봤는데 안되네요 ㅜㅜ

답변 4

·

답변을 작성해보세요.

2

안녕하세요. 이 문제 해결되셨나요?

이 질문을 많이 주셔서 folium 을 삭제하고 재설치 해봤는데요. 저도 다시 설치하니 같은 문제가 발생했어요.

folium 에 인코딩 이슈가 있는데요. 환경에 따라 인코딩 문제가 발생하기도 하고 저처럼 잘 표현되기도 해요.

버전 문제 인거 같아서 여러 버전을 바꿔서 설치해 봤는데도 같은 문제가 있었어요.

이 이슈는 잘 알려진 이슈로 다음의 github 링크에서도 확인해 보실 수 있어요.

[Unicode issue in tooltips on Jupyter notebook · Issue #1320 · python-visualization/folium](https://github.com/python-visualization/folium/issues/1320)

저는 여기에 나와있는 답변 중에  아래의 답변을 통해 이 문제를 해결했어요.

추가로 아래의 패키지를 설치해 주시면 한글폰트가 주피터 노트북 상에서도 잘 표현이 됩니다.

아래의 pip 구문을 참고하셔서 folium 을 설치하셨을 때처럼 아나콘다 프롬프트를 통해 설치해 주세요!

A fix has been merged in the branca library. It will be availabe in the next release, release date yet unknown. If you want it earlier you can install branca from the git main branch:

pip install git+https://github.com/python-visualization/branca.git@master

2

안녕하세요. 주피터 노트북 안에서 folium 으로 그래프를 그리는데 iframe 에 인코딩 설정이 charset-utf-8 으로 되어 있지 않아 해당 문제가 발생하고 있어요.

최근 folium 이 업데이트 되며 이런 현상이 있는데요.

번거롭지만 다음 경로의 파일에

anaconda3/lib/python3.X/site-packages/folium/element.py

렌더 함수 내에 렌더 함수 내에 html 변수 안에  다음의 값을 추가해 주셔도 되고요. 

"data:text/html;base64"->"data:text/html;charset=utf-8;base64"

가장 간단한 방법은  아래의 방법으로 html 파일로 저장하시면 해당 문제를 해결하실 수 있습니다!

map.save('index.html')

해보시고 안 되면 또 문의주세요!

잘 해결되길 바랍니다 :)

1

이은창님의 프로필

이은창

질문자

2020.03.05

안녕하세요 강사님. 어제 알려주신 방법 대로 진행했는데도 동일하게 문제가 발생합니다. 

일단, /site-packages/folium/element.py 이 path가 존재하지 않아 folium/feature.py 에서 encoding 방식을 확인하였는데 utf-8로 설정이 되어있었습니다. 이래 저래 코드를 확인해보다가 branca/element.py 를 거치는 것을 보고 파일을 열어 확인해보니  data:text/html;charset=utf-8;base64 문구가 이미 있는 것을 확인할 수 있었습니다. 

html 로 저장하는 것은 제가 입문자이다 보니, 저 코드를 어느 부분에 넣어야 할지 몰라 return 위에 적용을 했는데, (add_to(map) 이후 해야할 것 같아서..) 마지막에 show_makrer_map 함수를 적용하면,  아무것도 안뜨더라고요. 그래서 map을 define한 후에 html로 저장, add_to 를 해줬더니, Nontype에 add_child attribute가 불가능하다고 뜨네요 ㅜㅜ

차라리 folium을 다운그레이드를 해야하나 생각중입니다..

0

안녕하세요.  어려움이 많으셨겠어요 ㅠㅠ

html 페이지로 저장하는 방법은 생각보다 간단합니다. 아래 퀵스타트 문서의 3번째 코드가 html로 저장하는 코드인데요.

아래 코드를 실행해 보시면 같은 경로에 html문서가 생성됩니다.

주피터 노트북에서 한글폰트가 깨져도 아래 코드로 html 문서를 만들면 폰트가 깨지지 않는 걸 확인했습니다.

아래 방법이 가장 간단한 방법이고요.

import folium


m = folium.Map(location=[45.5236, -122.6750])

m.save('index.html')

https://python-visualization.github.io/folium/quickstart.html

또, 다른 방법은 google colab을 사용하시는 방법입니다.

아래 링크에 제가 예제를 만들어 놓았는데 화면에서 확인이 가능하고 html 로 저장한 파일도 file 탭에서 다운로드 가능합니다.

https://colab.research.google.com/drive/1rG7_ZTzXepicOQQIlobH5dFVT2-v4Q4O