[Python] iPad에서 Carnets로 matplotlib 사용 시, 한글을 사용했는데 오류가 났다고?
Error 발생… 그리고 이어진 해결!
평화로운 연등 시간,
독서실에서 iPad와 Carnets, 그리고 matplotlib를 이용해 그래프 예제를 신나게 그리고 있던 정지훈 상병. 예제 코드에서 str에 한글을 사용하면 오류가 발생할 것이라며 어떻게 하면 오류를 고칠 수 있는 지 알려준다.
‘음, 그대로 따라서 실행하면 되는 거 아니야?’
안된다.
두 번, 세 번 실행해도… Kernel을 Restart해도… 계속해서 오류가 발생한다.
책의 저자 분이 해결하라고 알려주신 코드는 다음과 같다.
import matplotlib
matplotlib.rcParamss['font.family'] = 'Malgun Gothic'
matplotlib.rcParamas['axes.unicode_minus'] = False
iPad로 구글링을 하고 싶었지만, 내 iPad는 Wi-Fi 모델이라 인터넷이 되지 않는다. 하지만 곧바로 왜 오류가 계속 발생하는 지 알게 되었다. 그 이유는 책의 저자 분은 윈도우를 기준으로 설명하고 계시기 때문이다.
얼른 싸지방으로 가서 맥os에서는 이 오류를 어떻게 해결하는 지 구글링 해보았다. 금방 해결법을 찾았다. 윈도우에는 위에 나와있는 ‘Malgun Gothic’ 즉, ‘맑은 고딕’이라는 서체가 기본적으로 설치되어있어서 폰트를 ‘맑은 고딕’으로 설정하면 한글 깨짐이 수정되지만, Mac OS는 ‘맑은 고딕’ 서체가 기본적으로 설치되어있지 않았던 것이다. 그래서 저 부분에 “한글을 지원하면서 Mac OS에 기본적으로 설치되어있는 폰트’를 넣으면 된다는 것이다. 그래서 ‘Malgun Gothic’ 대신에 ‘AppleGothic’을 적용하면 된다길래 다시 코드를 수정하여 실행했는데…
또 안된다.
대체 왜 그러니 너… 멘붕이 왔다. 하지만 정지훈, 그 이유를 스스로 찾아내고 마는데…
'’Mac OS’랑 ‘iPad OS’는 다른거잖아. ‘AppleGothic’이 iPad에는 설치가 안되어있는건가…?’
그래서 다음과 같은 코드를 통해서 나의 iPad에 설치되어 있는 폰트들을 모조리 찾아내었다.
import matplotlib.font_manager as fm
font_list = [font.name for font in fm.fontManager.ttflist]
print(font_list)
역시 font_list 안에는 ‘AppleGothic’이라는 폰트가 없었다. 그 대신, 비슷해보이는 ‘Apple SD Gothic Neo’라는 폰트가 있었다. 그래서 ‘AppleGothic’ 대신에 ‘Apple SD Gothic Neo’를 넣고 실행한 결과…
오류는 발생하지 않았고, matplotlib을 통해 한글을 사용한 그래프를 출력해도 제대로 출력되었다.
결론
iPad에서 Carnets를 사용하는데 matplotlib 모듈을 이용하다가 한글 출력 과정에서 한글 깨짐이나 오류가 발생하는 경우, 다음과 같은 코드를 실행해보자.
import matplotlib
matplotlib.rcParamss['font.family'] = 'Apple SD Gothic Neo'
matplotlib.rcParamas['axes.unicode_minus'] = False
필자는 문제가 해결되었고, 지금은 matplotlib에서 문제없이 한글을 사용한 그래프를 출력하고있다.
P.S.
구글링을 해도 Carnets를 사용하는 사람이 그리 많지 않은 것 같다. 게다가 이 마저를 iPad에서 사용하는 사람은 더욱 드문 것 같고… 그래서 문제가 발생했을 때 해결 방법이 빠르게 나오지는 않는 편이다. 이렇게 올린 포스트들이 남들에게 도움이 되었으면 좋겠다!
댓글남기기