본문 바로가기
파이썬

파이썬 matplotlib에서 한글 폰트 깨짐, 마이너스(-) 깨짐 문제 해결하기

by 코딩-가이드 2025. 4. 10.
반응형

 

matplotlib은 파이썬에서 데이터를 시각화할 수 있는 매우 강력한 라이브러리이지만, 기본 설정에서는 한글이 깨져서 출력되는 문제가 자주 발생합니다. 이는 matplotlib의 기본 폰트가 한글을 지원하지 않기 때문입니다. 특히 plt.title()이나 plt.xlabel(), plt.ylabel() 등에 한글 문자열을 입력하면 글자가 네모(□)로 나오거나 전혀 표시되지 않을 수 있습니다.

이 문제를 해결하기 위해 한글을 지원하는 폰트를 설정해 주는 것이 가장 중요합니다. 여기서는 matplotlib.rcParams을 이용하여 해결하는 방법에 대해 소개하겠습니다.


 

한글 폰트 깨짐 문제를 해결하는 가장 간단한 해결 방법은 matplotlib의 설정값(rcParams)을 직접 변경하여 한글이 제대로 출력되도록 폰트를 지정하는 것입니다. 이 방법은 코드 상단에 몇 줄만 추가하면 되기 때문에 매우 간편하며, 빠르게 문제를 해결할 수 있습니다.

 

운영체제별로 사용할 수 있는 대표적인 한글 폰트는 다음과 같습니다:

  • Windows: Malgun Gothic
  • macOS: AppleGothic
  • Linux: NanumGothic (설치 필요)

아래는 이 방법을 사용한 예시 코드입니다:

 

1. 한글출력 오류 수정

1-1. 한글 출력 오류가 포함된 소스 코드

import matplotlib.pyplot as plt
import matplotlib as mpl

plt.plot([1, 2, 3], [1, 4, 9])
plt.title("한글 출력력 테스트")
plt.xlabel("X축")
plt.ylabel("Y축")
plt.grid(True)
plt.show()

 

[결과]

 

위 결과에서 보는것처럼 한글 부분이 모두 깨져있습니다. 이것을 해결하기 위해 아래와 같이 소스코드를 수정해야 합니다.

 

1-2. 한글 출력 오류가 수정된 소스 코드

# 운영체제에 맞게 폰트 지정
mpl.rcParams['font.family'] = 'Malgun Gothic'  # Windows 사용자의 경우

# 예제 플롯
plt.plot([1, 2, 3], [1, 4, 9])
plt.title("한글 출력력 테스트")
plt.xlabel("X축")
plt.ylabel("Y축")
plt.grid(True)
plt.show()

 

[결과]

 

 

한글이 정상적으로 출력되는 것을 볼 수 있습니다.

 

OS에 따라 아래와 같이 사용하면 됩니다.

# 운영체제에 맞게 폰트 지정
mpl.rcParams['font.family'] = 'Malgun Gothic'  # Windows 사용자의 경우

mpl.rcParams['font.family'] = 'AppleGothic'  # macOS 사용자

mpl.rcParams['font.family'] = 'NanumGothic'  # Linux 사용자

 

2. 마이너스(-) 출력 오류 수정

rcParams['axes.unicode_minus'] = False는 y축이나 그래프 안에서 음수 기호(-)가 깨지는 문제를 방지해 줍니다. 한글뿐 아니라 숫자 표현도 깔끔하게 유지하기 위해 반드시 함께 설정해 주는 것이 좋습니다.

 

2-1. 마이너스 출력 오류가 포함된 소스 코드

import matplotlib.pyplot as plt
import matplotlib as mpl

# 운영체제에 맞게 폰트 지정
mpl.rcParams['font.family'] = 'Malgun Gothic'  # Windows 사용자의 경우

# 예제 플롯
plt.plot([-1, -2, -3], [1, 4, 9])
plt.title("한글 출력 테스트")
plt.xlabel("X축")
plt.ylabel("Y축")
plt.grid(True)
plt.show()

 

 

[결과]

 

 

위 결과에서 x축에 마이너스(-)가 정상적으로 출력되지 않는 것을 볼 수 있습니다. 이를 해결하기 위해 아래와 같이 소스코드를 수정해야 합니다.

 

 

2-2. 마이너스 출력 오류가 수정된 소스 코드

import matplotlib.pyplot as plt
import matplotlib as mpl

# 운영체제에 맞게 폰트 지정
mpl.rcParams['font.family'] = 'Malgun Gothic'  # Windows 사용자의 경우

# 마이너스(-) 기호가 깨지지 않도록 설정
mpl.rcParams['axes.unicode_minus'] = False

# 예제 플롯
plt.plot([-1, -2, -3], [1, 4, 9])
plt.title("한글 출력 테스트")
plt.xlabel("X축")
plt.ylabel("Y축")
plt.grid(True)
plt.show()

 

[결과]

 

마이너스가(-) 정상적으로 출력되는 것을 확인할 수 있습니다.

 

반응형