본문 바로가기
카테고리 없음

파이스크립트 도전기(7) - 한글 그래프!

반응형

지난 게시글에 이어지는 연재글입니다 : https://itadventure.tistory.com/547

 

파이스크립트 도전기(6) - 파이썬 인터프리터(2편)

지난 게시글에서 연재되는 글입니다 : https://itadventure.tistory.com/546 파이스크립트 도전기(5) - 브라우저에서 파이썬 인터프리터? 지난 게시글에 연재되는 도전기 3탄입니다. https://itadventure.tistory...

itadventure.tistory.com


구독자분께서 도전할만한 과제(?)를 주셔서 찾아본 끝에 알아내어 끄적여 봅니다 :)

오늘은 파이스크립트 Matploblib 그래프에서 한글 제목을 적용하는 방법을 알아볼텐데요.
여기 저기 아무리 찾아도 비슷한 내용만 있지 완전히 작동하는 스크립트는 없더라구요.
그래서 이 내용 저 내용 참조하다가 유레카! 알아낸 내용입니다.
최소한 공개글로는 국내 최초(?)로 크레이가 적는 글이 아닐까 생각됩니다! :D :D :D ( 하하핫 - )

 

소.스.공.개!

 

뭐 뜸 들일게 있겠습니까? 파이스크립트에서 한글을 적용하는 소스는 아래와 같은데요.

<html> 
    <head> 
      <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" /> 
      <script defer src="https://pyscript.net/alpha/pyscript.js"></script> 
      <py-env>
        - matplotlib
        - paths:
          - ./NANUMGOTHIC.TTF
          - ./NANUMGOTHICBOLD.TTF
      </py-env>
    </head>
  <body> 
    <h1>대한민국 인구</h1>
    <div id="poplulation_layer"></div>
    <py-script output="poplulation_layer"> 
      import matplotlib.pyplot as plt      
      import matplotlib.font_manager as fm
      
      NanumGothic = fm.FontProperties(fname='./NANUMGOTHIC.TTF')
      NanumGothicBold = fm.FontProperties(fname='./NANUMGOTHICBOLD.TTF')
      
      
      
      fig = plt.figure()
      
      year = [
        1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 
        2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013,
        2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021]
        
      population = [
        45416339, 45858029, 46266256, 46684069, 46991171, 47335678, 47732558, 48021543, 48229948, 48386823,
        48583805, 48782274, 48991779, 49268928, 49540367, 49773145, 50515666, 50734284, 50948272, 51141463,
        51327916, 51529338, 51696216, 51778544, 51826059, 51849861, 51829023, 51638809 ]
      plt.title('연도별 인구변화',  fontproperties=NanumGothicBold, fontsize=16);
      plt.plot(year, population )
      plt.xlabel('연도',  fontproperties=NanumGothic, fontsize=12)
      plt.ylabel('인구(1,000만단위)',  fontproperties=NanumGothic, fontsize=12)
      fig
    </py-script> 
  </body> 
</html>


출력결과는 아래와 같습니다. ''연도별 인구변화'와 연도, 인구 부분이 한글로 나타나는 것을 보실 수 있지요.
하지만 위 소스만 여러분의 홈페이지에 올려 실행한다고 바로 나오는 것이 아닙니다.

 

뭔가 해줘야 한다구요?


이 소스가 작동하기 위해서는 한가지 조건이 있습니다.
나눔 고딕 TTF 폰트를 홈페이지의 동일한 경로에 함께 업로드해야 하는 것이지요.

윈도우 탐색기를 실행해 C:\Windows\Fonts 폴더에 들어가보시면 윈도우즈에 설치된 많은 폰트들이 보이실 겁니다.

홈페이지에 접속하는 FTP 창을 열어 원하는 폰트를 드래그하시면 폰트가 업로드될텐데요.
파일을 하나만 업로드하더라도 일반폰트와 굵은, 가는 폰트 등의 여러 파일이 함께 업로드됩니다.

이 파일명을 그대로 사용햐여 하는데요.
파이스크립트에서 사용하려면 파이썬과 다른 부분이 약간 있습니다.

먼저 <py-env> 태그의 - paths: 하위 영역에 사용할 폰트 파일명을  모두 기재해 주어야 하는 것이지요
아래처럼 말이지요. 필수적으로 해주어야 하는 부분이며 안 해주면 오류가 발생합니다.


      <py-env>
        - matplotlib
        - paths:
          - ./NANUMGOTHIC.TTF
          - ./NANUMGOTHICBOLD.TTF
      </py-env>


그리고 나서 matplotlib 의 font_manager 모듈을 임포트해준 다음에,

import matplotlib.font_manager as fm


사용할 폰트를  불러와 변수에 받아오는 부분을 먼저 수행해야 합니다.
여기서는 나눔고딕 폰트와 나눔고득 폰트 굵은 글씨 2가지를 불러왔습니다.
개인적으로 나눔고딕 폰트를 굵게 적용하는 것보다는 나눔고딕 굵은 폰트를 사용하는게 더 예쁘더라구요 :)

NanumGothic = fm.FontProperties(fname='./NANUMGOTHIC.TTF')
NanumGothicBold = fm.FontProperties(fname='./NANUMGOTHICBOLD.TTF')


그리고 이 폰트를 그래프의 제목을 적용할 때마다 fontproperties 속성을 지정해서 넘겨주면 되는데요.
fontsize 속성을 함께 넘겨주면 폰트 크기도 지정할 수 있습니다.

plt.xlabel('연도',  fontproperties=NanumGothic, fontsize=12)


아래는 나눔명조체를 적용해본 결과입니다 :)
이 소스는 아래 크레이의 홈페이지에서도 확인해 보실 수 있습니다.
소스는 뭐.. 중복이 많으니소스 보기로 해주셔도 됩니다. ㅎㅎ
http://dreamplan7.cafe24.com/pyscript/py8.html

 

마무리~

 

오늘은 파이스크립트의 matploitlib 그래프에 한글을 적용하는 부분을 다루어 보았습니다.
웬지 크레이 생각에도 유용한 정보일듯 한데 필요하신 분에게 도움이 되었으면 하는군요.
오늘도 방문하시는 분들, 여기까지 읽어주시는 모든 분들 감사드립니다~
유레카~


다음 게시글 : https://itadventure.tistory.com/549

 

파도!(8) - 아보카도 판매량

지난 게시글에 연재되는 글입니다 - https://itadventure.tistory.com/548 파이스크립트 도전기(7) - 한글 그래프! 지난 게시글에 이어지는 연재글입니다 : https://itadventure.tistory.com/547 파이스크립트 도..

itadventure.tistory.com

 

반응형