파이썬 한글 깨짐 해결: 시각화에서 한글 텍스트 문제 해결하기

이번 포스트에서는 파이썬 한글 깨짐 문제를 해결하는 방법에 대해 설명하겠습니다. 우리가 Matplotlib 라이브러리를 사용하여 데이터를 시각화할 때, 한글 텍스트가 깨져서 제대로 표시되지 않는 문제가 발생할 수 있습니다. 특히 제목, 축 레이블, 범례 등에서 한글이 깨지면 그래프가 읽기 어려워지므로, 이를 해결하는 방법을 자세히 알아보겠습니다.

앞선 포스트에서 아래 코드를 실행하면 그래프에서 한글 텍스트가 깨지는 문제가 발생하는데, 이를 해결하는 과정을 단계별로 설명하겠습니다.

import yfinance as yf

# S&P 500 지수 데이터 다운로드
sp500 = yf.download('^GSPC', start='2010-01-01', end='2023-01-01')

# 데이터 탐색
print(sp500.head())
print(sp500.describe())

import matplotlib.pyplot as plt

# 종가 데이터 시각화
plt.figure(figsize=(10, 6))
plt.plot(sp500['Close'], label='S&P 500 종가', color='blue')
plt.title('S&P 500 지수 종가 시계열')
plt.xlabel('날짜')
plt.ylabel('종가 (USD)')
plt.legend()
plt.show()
파이썬 한글 깨짐 - S&P 500 데이터 드렌드

파이썬 한글 깨짐 문제는 왜 나타날까요?

파이썬에서 시각화를 할 때, Matplotlib는 기본적으로 시스템에 설치된 폰트를 사용합니다. 그러나 기본 설정에서는 한글 폰트가 포함되어 있지 않거나, 한글을 제대로 인식하지 못해 텍스트가 깨지는 문제가 발생할 수 있습니다. 이러한 문제는 시스템에 한글 폰트를 설치하고, Matplotlib에서 해당 폰트를 인식하도록 설정해야 해결할 수 있습니다.

파이썬 한글 깨짐 해결 단계별 가이드

1. 한글 폰트 설치

먼저, 파이썬에서 사용할 한글 폰트를 설치해야 합니다. 윈도우에서는 기본적으로 맑은 고딕 같은 한글 폰트가 포함되어 있지만, 리눅스나 맥OS에서는 별도로 설치해야 할 수 있습니다.

리눅스의 경우, 아래 명령어를 사용하여 한글 폰트를 설치할 수 있습니다:

sudo apt-get install fonts-nanum

이 명령어는 나눔 폰트를 설치하며, 설치가 완료되면 Matplotlib에서 해당 폰트를 사용할 수 있습니다.

2. Matplotlib에서 한글 폰트 설정

폰트가 설치되었다면, 이제 Matplotlib에서 한글 폰트를 사용하도록 설정해야 합니다. 이를 위해 rc(runtime configuration)를 변경하여 사용할 폰트를 지정할 수 있습니다. matplotlib.rcParams를 사용하여 폰트를 설정하는 방법은 다음과 같습니다.

import yfinance as yf

# S&P 500 지수 데이터 다운로드
sp500 = yf.download('^GSPC', start='2010-01-01', end='2023-01-01')

# 데이터 탐색print(sp500.head())
print(sp500.describe())

import matplotlib.pyplot as plt
from matplotlib import font_manager, rc

# 한글 폰트 설정 (나눔 고딕)
font_path = 'C:/Windows/Fonts/NanumGothic.ttf' # 경로 설정 필요
font_name = font_manager.FontProperties(fname=font_path).get_name()
rc('font', family=font_name)

# 종가 데이터 시각화
plt.figure(figsize=(10, 6))
plt.plot(sp500['Close'], label='S&P 500 종가', color='blue')
plt.title('S&P 500 지수 종가 시계열')
plt.xlabel('날짜')
plt.ylabel('종가 (USD)')
plt.legend()
plt.show()

이 코드를 통해 한글 폰트를 지정한 후, 시각화에 적용할 수 있습니다. 위 코드에서 font_path는 설치된 나눔 폰트의 경로를 지정하며, 경로는 시스템에 따라 다를 수 있으니 적절히 설정해주어야 합니다. 그런 후 코드를 실행하면 아래와 같이 파이썬 한글 깨짐 문제는 완전히 해결된 것을 알 수 있습니다.

파이썬 한글 깨짐 - S&P 500 데이터 드렌드

3. 폰트 캐시 초기화

때때로, 폰트 설정 후에도 한글이 깨져 나오는 경우가 있습니다. 이때는 Matplotlib 폰트 캐시를 초기화하는 것이 도움이 될 수 있습니다. 아래 명령어를 사용하여 캐시를 초기화할 수 있습니다.

rm ~/.cache/matplotlib -rf

캐시를 제거한 후 다시 그래프를 생성하면, 폰트가 올바르게 적용됩니다.

4. 그래프 다시 그리기

이제 한글 폰트가 설정되었으므로, 다시 그래프를 그려보겠습니다. 아래 코드를 사용하여 한글 텍스트가 제대로 표시되는지 확인할 수 있습니다.

import matplotlib.pyplot as plt

# 종가 데이터 시각화
plt.figure(figsize=(10, 6))
plt.plot(sp500['Close'], label='S&P 500 종가', color='blue')
plt.title('S&P 500 지수 종가 시계열')
plt.xlabel('날짜')
plt.ylabel('종가 (USD)')
plt.legend()
plt.show()

이 코드를 실행하면, 이제 그래프의 제목, 축 레이블, 범례가 모두 한글로 제대로 표시될 것입니다.

정리하기: 파이썬 한글 깨짐 해결

이번 포스트에서는 파이썬 한글 깨짐 문제를 해결하는 방법을 다뤘습니다. 한글 폰트를 설치하고, Matplotlib에서 해당 폰트를 설정하는 것이 핵심입니다. 시각화에서 한글 텍스트가 제대로 표시되지 않을 때 이 방법을 사용하면, 보다 읽기 쉽고 이해하기 쉬운 그래프를 만들 수 있습니다. 파이썬 한글 깨짐 문제 이외에 또 다른 문제를 만날 경우가 많습니다. 그 중에 한가지는 nan 문제인데 이게 뭔지 궁금하지 않으신가요? 파이썬 nan 제거: ARIMA 모델 예측에서 nan 문제 해결하기 포스트를 확인해보세요!

#용어 설명

1. Matplotlib

Matplotlib는 파이썬에서 데이터 시각화를 위한 라이브러리입니다. 다양한 종류의 그래프와 차트를 그릴 수 있으며, 특히 시계열 데이터나 통계 데이터를 시각적으로 표현하는 데 자주 사용됩니다.

2. nan (Not a Number)

nan은 “Not a Number”의 약자로, 수치 계산 과정에서 잘못된 값이 발생하거나 데이터가 누락되었을 때 표시되는 값입니다. 시각화나 데이터 분석에서 발생하는 오류를 나타낼 수 있습니다.

3. rc (runtime configuration)

Matplotlib의 rc는 “runtime configuration”의 약자로, 그래프의 전역 설정을 변경할 수 있는 설정 파일입니다. 폰트, 색상, 라인 스타일 등 그래프의 전반적인 스타일을 조정할 수 있습니다.

4. 폰트 캐시 (Font Cache)

폰트 캐시는 폰트 정보를 빠르게 접근할 수 있도록 저장해두는 임시 저장 공간입니다. 폰트 캐시가 잘못된 상태에서 그래프를 그리면 폰트가 제대로 적용되지 않을 수 있으므로, 문제가 있을 때는 캐시를 삭제하고 다시 생성하는 것이 유용합니다.

유사한 게시물