【Python】matplotlib3.2의 일본어 폰트 설정 방법 【공식 준수】

소개


  • matplotlib ( htps // tp t b. rg/ )는 Python에서 그래프 등을 그리는 유명한 라이브러리입니다
  • 다만, 그래프내의 라벨등에서 일본어를 사용하고 싶은 경우, 디폴트라고 문자 깨짐(◻︎◻︎◻︎◻︎◻︎이므로 두부라고 불리는 것처럼)이 발생해 버립니다
  • 자신이 matplotlib 日本語 로 조사했을 때에 나온 기사가 상당히 역기의 방법(설치한 matplotlib의 내용을 직접 재기록하는 녀석 등)만으로 곤란했으므로, 공식으로 소개되고 있는 방법을 써주세요

  • 일본어 라이브러리를 사용하지 않습니까?


  • japanize-matplotlib ( htps : // 기주 b. 코 m / 우에하라 1414 / 자파니 제마 tp t t b ) 라는 matpotlib의 일본어화 라이브러리를 만들어 주는 친절한 분이 있습니다
  • 이것을 사용할 수도 있습니다만, 이 라이브러리로 사용되고 있는 font_manager.createFontList 라는 메소드가 matpotlib 의 3.2.0 보다 비추천이 되었습니다
  • htps // tp t b. rg/api/pre v_api_change s/api_change s_3.2.0. HTML


  • font_manager.createFontList is deprecated. font_manager.FontManager.addfont is now available to register a font at a given path.
  • 따라서 matpotlib을 3.2.0 이상에서 사용하는 경우 다음과 같은 경고가 표시됩니다
  • MatplotlibDeprecationWarning: 
    The createFontList function was deprecated in Matplotlib 3.2 and will be removed two minor releases later. Use FontManager.addfont instead.
    
  • japanize-matplotlib의 소스 코드를 읽으면 알 수 있듯이 복잡하지는 않으므로 이번에는 자체적으로 동등한 구현을 FontManager.addfont로 바꿉니다
  • .

    FontManager.addfont에서 일본어 글꼴 추가


  • 일본어 글꼴 (이번에는 IPAex 고딕) 다운로드 및 압축 해제
  • IPAex 글꼴: htps : // 이파후 t. 가득. . jp/ 때문에 193

  • 사용할 리포지토리에 다운로드 한 .ttf 파일 넣기
  • 예를 들어 fonts 디렉토리를 만들고 /fonts/ipag.ttf처럼 넣는다


  • fontManager.addfont에서만로드
  • 나는 classmethod라고 생각하고 시간을 낭비했다 ...

  • from matplotlib import font_manager
    
    font_manager.fontManager.addfont("/fonts/ipag.ttf")
    matplotlib.rc('font', family="IPAGothic")
    
  • 여러 글꼴이있는 경우 다음을 수행하면 OK
  • from matplotlib import font_manager
    
    font_files = font_manager.findSystemFonts(fontpaths=["/fonts"])
    
    for font_file in font_files:
        font_manager.fontManager.addfont(font_file)
    
    matplotlib.rc('font', family="IPAGothic")
    


  • 덧붙여서 버전이 3.2 미만인 경우는 다음과 같이 대응할 수 있습니다
  • japanize-matplotlib에서하는 것과 거의 동일

  • from matplotlib import font_manager
    
    font_files = font_manager.findSystemFonts(fontpaths=["/fonts"])
    font_list = font_manager.createFontList(font_files) # 3.2以上の場合は警告が出る
    font_manager.fontManager.ttflist.extend(font_list)
    matplotlib.rc('font', family="IPAGothic")
    

    끝에


  • 아무것도 큰 일은 하지 않습니다만 다른 사람이 조사했을 때에 당황하지 않게 써 남깁니다
  • 좋은 웹페이지 즐겨찾기