[Python] matplotlib 에서 한글 출력

반응형
    반응형

    matplotlib 에서 한글로 출력이 안 되는 경우가 있는데

    이건 matplotlib에서 제공하는 기본폰트가 한글 font를 가지고 있지 않아서 그렇습니다.

    그래서 title 부분을 한글로 해서 출력했더니 네모로만 표시되어 있습니다.

     

    이런 경우 font를 변경해주어야 합니다. 다음과 같이 변경합니다.

    저는 나눔고딕(NanumGothic) 폰트를 설정했습니다.

     

    >>> import matplotlib.pyplot as plt
    >>> plt.rc('font',family='NanumGothic')
    >>> print(plt.rcParams['font.family'])
    ['NanumGothic']

     

    이렇게 했는데 설정이 안되거나 'Font family [] not found' 에러가 뜨면 다음과 같이 합니다.

    먼저 폰트 디렉터리를 찾습니다.

    import matplotlib
    matplotlib.matplotlib_fname()

    해당 폴더로 가서 matplotlibrc 파일을 메모장으로 열고 font.family를 찾습니다.

    NanumGothic 으로 바꿉니다.

    저장을 하고 끕니다.

    그리고 해당폴더에 fonts 폴더가 보일 것 입니다. 그 안에 ttf 폴더에 폰트를 넣습니다.

     

    마지막으로 캐쉬를 지운후 jupyter 재시작을 합니다.

    캐쉬 폴더는 다음을 코드로 입력하면 나옵니다.

    matplotlib.get_cachedir()

    해당폴더로 가서 아래와 같은 파일들이 있을텐데 모두 지웁니다.

    재시작합니다.

     

     한글이 나오게 됩니다.

    댓글

    Designed by JB FACTORY

    ....