Matplotlib에서 그래프(plot) 내부에 텍스트를 추가하려면 plt.text() 함수를 활용하면 됩니다. 이 함수는 원하는 좌표 위치에 텍스트를 배치할 수 있으며, 글꼴 크기나 배경 상자 등 다양한 스타일 속성도 함께 지정할 수 있습니다.
구현 단계
- 그림(figure) 크기를 설정하고, 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
- NumPy를 사용하여 x와 y 데이터 포인트를 생성합니다.
- plt.text() 메서드로 텍스트를 배치하고, 폰트 크기와 배경 상자(bbox) 같은 텍스트 속성을 지정합니다.
- plot() 메서드를 사용해 x와 y 데이터를 그래프로 그립니다.
- axis('off')를 호출하여 축을 숨깁니다.
- show() 메서드로 최종 그림을 화면에 표시합니다.
예제 코드
import numpy as np
from matplotlib import pyplot as plt
# 그림 크기 및 자동 레이아웃 설정
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
# 데이터 포인트 생성
x = np.linspace(-5, 5, 100)
y = x ** 3
# 텍스트 추가 (수식 표현, 빨간색 반투명 배경 상자 적용)
plt.text(0, 100, '$y=x^3$', fontsize=22, bbox=dict(facecolor='red', alpha=0.5))
# 그래프 그리기
plt.plot(x, y, c='g')
# 축 숨기기
plt.axis('off')
plt.show()코드 설명
위 예제에서는 np.linspace(-5, 5, 100)으로 -5부터 5까지 100개의 균일한 x 값을 생성하고, 여기에 세제곱 연산을 적용해 y 값을 만듭니다. 핵심은 plt.text(0, 100, '$y=x^3$') 부분으로, 좌표 (0, 100) 위치에 LaTeX 수식 형태의 텍스트를 삽입합니다.
bbox 매개변수에 딕셔너리를 전달하면 텍스트 뒤에 배경 상자가 생성됩니다. 여기서는 facecolor='red'로 빨간색 배경을 지정하고, alpha=0.5로 반투명하게 설정했습니다. 또한 '$y=x^3$'처럼 달러 기호($)로 감싸면 Matplotlib의 mathtext 기능을 통해 수식이 아름답게 렌더링됩니다.
실행 결과
코드를 실행하면 초록색 곡선 그래프 위에 빨간색 반투명 배경의 수식 텍스트가 표시되며, 축은 숨겨진 상태로 깔끔한 그림이 출력됩니다.