소연이의 메모장

[Python] 시각화를 위한 한글 폰트 설정 본문

Programming/Python

[Python] 시각화를 위한 한글 폰트 설정

xoyeon 2022. 8. 16. 01:25
반응형

matplotlib에서 한글폰트를 사용하여 시각화를 할 때 네모네모로 글자가 깨지는 현상이 발생한다.

이걸 해결하기 위한 python 코드다.

 

우선 네이버의 나눔글꼴을 다운 받아야 한다.

시스템 환경이 윈도우라면 맑은고딕이 실행된다.

그리고 마이너스 폰트까지 잘 나오는지 확인하는 코드도 있다.

def get_font_family():
    """
    시스템 환경에 따른 기본 폰트명을 반환하는 함수
    """
    import platform
    system_name = platform.system()
    # colab 사용자는 system_name이 'Linux'로 확인

    if system_name == "Darwin" :
        font_family = "AppleGothic"
    elif system_name == "Windows":
        font_family = "Malgun Gothic"
    else:
        # Linux
        # colab에서는 runtime을 <꼭> 재시작 해야합니다.
        # 런타임을 재시작 하지 않고 폰트 설치를 하면 기본 설정 폰트가 로드되어 한글이 깨집니다.
        !apt-get update -qq
        !apt-get install fonts-nanum -qq  > /dev/null

        import matplotlib.font_manager as fm

        fontpath = '/usr/share/fonts/truetype/nanum/NanumBarunGothic.ttf'
        font = fm.FontProperties(fname=fontpath, size=9)
        fm._rebuild()
        font_family = "NanumBarunGothic"
    return font_family
# 시각화를 위한 폰트설정
import matplotlib.pyplot as plt

# 위에서 만든 함수를 통해 시스템 폰트를 불러와서 font_family 라는 변수에 할당
font_family = get_font_family()

# 폰트설정
plt.rc("font", family=get_font_family())

# 마이너스폰트 설정
plt.rc("axes", unicode_minus=False)

# 그래프 스타일 설정
plt.style.use('ggplot')

# 그래프에 retina display 적용
from IPython.display import set_matplotlib_formats
set_matplotlib_formats('retina')
# 한글폰트 확인
pd.Series([1,3,5,-7,9]).plot(title="한글")

출처 : 오늘코드