그래프(플롯) 안이나 바깥에 텍스트를 배치하려면 text_pos_x와 text_pos_y 값을 조정하여 텍스트의 위치를 변경하면 됩니다. 특히 Matplotlib의 text() 메서드에 transform=plt.gcf().transFigure 옵션을 함께 사용하면 축(axis) 좌표가 아닌 전체 그림(figure) 기준의 0~1 상대 좌표계를 사용할 수 있어, 그래프 영역 밖을 포함한 원하는 어느 곳에든 텍스트를 자유롭게 배치할 수 있습니다.
구현 단계
- x, y 데이터 포인트를 생성합니다.
- 텍스트가 표시될 x, y 위치를 초기화합니다.
plot()메서드에 color='red' 옵션을 지정하여 x, y 데이터를 그립니다.text()메서드를 사용해 그림(figure)에 텍스트를 추가합니다.show()메서드로 그림을 화면에 출력합니다.
예제 코드
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.linspace(1, 5, 100)
y = np.exp(x)
text_pos_x = 0.60
text_pos_y = 0.50
plt.plot(x, y, c='red')
plt.text(text_pos_x, text_pos_y, "$\mathit{y}=e^{x}$", fontsize=14,
transform=plt.gcf().transFigure, color='green')
plt.show()
코드 설명
np.linspace(1, 5, 100): 1부터 5까지 100개의 균등한 x 값을 생성합니다.y = np.exp(x): 각 x 값에 대한 지수 함수 e^x 값을 계산합니다.text_pos_x = 0.60,text_pos_y = 0.50: 그림 전체 너비의 60%, 높이의 50% 지점에 텍스트를 배치합니다.transform=plt.gcf().transFigure: 텍스트 좌표를 축이 아닌 figure 기준으로 해석하도록 설정합니다.
실행 결과
