강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của hmin3882
hmin3882

câu hỏi đã được viết

Tìm kiếm tín hiệu và nhiễu thông qua việc thu thập và phân tích dữ liệu chứng khoán bằng Python

[2/3] Phương pháp trực quan hóa nhiều hạng mục có quy mô khác nhau

한글폰트가 깨집니다

Viết

·

1.5K

2

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:
        !apt-get install fonts-nanum -qq  > /dev/null
        !fc-cache -fv

        import matplotlib as mpl
        mpl.font_manager._rebuild()
        findfont = mpl.font_manager.fontManager.findfont
        mpl.font_manager.findfont = findfont
        mpl.backends.backend_agg.findfont = findfont
        
        font_family = "NanumBarunGothic"
        
    return font_family

이렇게 설정하고 get_font_family()하면 'Malgun Gothic' 제대로 나오고

# 시각화를 위한 폰트설정
import matplotlib.pyplot as plt

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

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

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

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

 

이걸 돌렸는데도 

# 한글폰트 확인
pd.Series([1, -3]).plot(title="한글폰트")

하면 깨져서 나옵니다.

 

C:\Users\August\anaconda3\lib\site-packages\matplotlib\backends\backend_agg.py:240: RuntimeWarning: Glyph 54620 missing from current font.
  font.set_text(s, 0.0, flags=flags)

어떻게 하면 좋을까요?
numpypythonpandas웹-크롤링plotlymatplotlib웹 스크래핑seaborn

Câu trả lời 2

1

todaycode님의 프로필 이미지
todaycode
Người chia sẻ kiến thức

안녕하세요.

 

아마 윈도우 기본폰트에 맑은 고딕이 없는 것으로 보여집니다.

아래 명령어를 conda prompt 를 열어 설치해 주세요!

pip install koreanize-matplotlib

 

그리고 주피터 노트북을 열어 아래의 코드를 실행해 보세요.

koreanize_matplotlib 은 설치하고 불러오는 것만으로도 한글폰트 사용이 가능합니다.

 

import koreanize_matplotlib

# 그래프에 retina display 적용
%config InlineBackend.figure_format = 'retina'

pd.Series([1, 3, 5, -7, 9]).plot(title="한글")

 

hmin님의 프로필 이미지
hmin
Người đặt câu hỏi

해결 됐습니다. 감사합니다!

0

For 아이패드 사용자

저는 출퇴근길에 아이패드에서 보다보니 환경이 조금 달랐습니다.

비슷한 경우가 있었는데 아래처럼 아이패드 기본 폰트로 설정하니 됐어요. 

 

 

def get_font_family():

    """

    시스템 환경에 따른 기본 폰트명을 반환하는 함수

    """

    import platform

    system_name = platform.system()

    # colab 사용자는 system_name이 'Linux'로 확인

 

    if system_name == "Darwin" :

        # font_family = "AppleGothic"

        font_family = "Apple SD Gothic Neo"

        

    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

 

Hình ảnh hồ sơ của hmin3882
hmin3882

câu hỏi đã được viết

Đặt câu hỏi