콘텐츠 내 자동삽입광고

광고1

posted by 초코생크림빵 2025. 8. 23. 13:58
반응형

코드에서 제목과 라벨에 한글을 넣었을 때 글자가 깨지는 문제는 폰트 설정이 제대로 되지 않았기 때문에 발생합니다. 기본적으로 Matplotlib은 한글을 지원하지 않는 경우가 많아, 한글 폰트를 별도로 지정해줘야 합니다.


Matplotlib에서 한글 깨짐 해결 방법

  1. 폰트 지정: Matplotlib의 폰트 설정을 변경하여 한글을 지원하는 폰트를 지정해주어야 합니다.
  2. 마이너스 기호 깨짐 방지: 폰트를 설정한 후에도 마이너스 기호(-)가 네모 상자로 깨지는 경우가 있습니다. 이 역시 별도로 설정을 추가해줘야 합니다.

아래는 이 두 가지 문제를 해결하기 위한 전체 코드입니다. 이 코드를 IDLE 쉘에 입력하고 실행해 보세요.


수정된 소스 코드

Python
 
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

# 1. 폰트 경로 설정
# 시스템에 설치된 한글 폰트 경로를 찾아서 지정합니다.
# Windows: 'C:/Windows/Fonts/malgun.ttf' (맑은 고딕)
# macOS: '/Library/Fonts/AppleGothic.ttf' (애플고딕)
# Linux: '/usr/share/fonts/truetype/nanum/NanumGothic.ttf' (나눔고딕)
font_path = 'C:/Windows/Fonts/malgun.ttf' 

# 2. 폰트 속성 설정
font_prop = fm.FontProperties(fname=font_path).get_name()
plt.rc('font', family=font_prop)

# 3. 마이너스 기호 깨짐 방지
plt.rcParams['axes.unicode_minus'] = False


#-------------------------------------
# 기존 코드와 동일
#-------------------------------------
x = [1, 2, 3, 4, 5]
y = [10, 20, 15, 25, 30]

plt.plot(x, y)

plt.title('테스트 그래프')
plt.xlabel('x축 레이블')
plt.ylabel('y축 레이블')

plt.show()

소스 설명

  • import matplotlib.font_manager as fm: 폰트 관리를 위한 font_manager 모듈을 불러옵니다.
  • font_path: 사용자의 운영체제에 맞는 한글 폰트 파일 경로를 직접 지정해줘야 합니다. 위에 예시를 참고하여 본인의 컴퓨터에 설치된 폰트 경로를 찾아 입력해주세요.
  • plt.rc('font', family=font_prop): Matplotlib의 기본 폰트를 지정한 한글 폰트로 설정합니다. 이 설정을 해주면 title, xlabel, ylabel 등에 한글을 사용해도 깨지지 않습니다.
  • plt.rcParams['axes.unicode_minus'] = False: 폰트를 변경할 때 함께 발생하는 마이너스 기호(–) 깨짐 현상을 방지합니다.

이 코드를 사용하면 한글이 정상적으로 표시될 겁니다. 만약 한글 폰트 파일 경로를 찾는 데 어려움이 있다면, 인터넷에서 '내 운영체제 한글 폰트 경로'를 검색해 보세요.

 

인터넷에서 치면 이렇게 결과값을 볼 수 있다.

윈도우에서는 "C:\Windows\Fonts" 폴더에, 맥에서는 "/Library/Fonts" 폴더에 폰트 파일이 저장되어 있다.

반응형

콘텐츠 내 자동삽입광고