개요
Matplotlib에서 각 서브플롯(subplot)의 축 텍스트를 회전하려면 text() 메서드에 rotation 인자를 함께 전달하면 됩니다. 이 방법을 활용하면 그래프 내 텍스트의 기울기를 자유롭게 조절할 수 있어 가독성이 크게 향상됩니다.
구현 단계
figure 생성: 새 figure를 만들거나 기존 figure를 활성화합니다.
Axes 추가: add_subplot() 메서드를 사용해 서브플롯 배치의 일부로 figure에 ~.axes.Axes 객체를 추가합니다.
레이아웃 조정: subplots_adjust() 메서드로 서브플롯의 레이아웃 매개변수를 조정합니다.
전체 제목 추가: suptitle() 메서드로 figure 상단 중앙에 제목을 배치합니다.
축 제목 설정: set_title() 메서드로 축의 제목을 지정합니다.
x, y 레이블 설정: set_xlabel()과 set_ylabel() 메서드로 플롯의 x축, y축 레이블을 지정합니다.
좌표 범위 지정: 원하는 좌표점을 기준으로 축 범위를 설정합니다.
텍스트 추가 및 회전: fontsize, fontweight 등 다양한 인자와 함께 rotation 값을 지정하여 figure에 텍스트를 추가합니다.
점 플롯 및 주석: 단일 점을 플롯한 뒤, 해당 점에 텍스트와 화살촉(arrowhead)이 포함된 주석을 추가합니다.
그래프 표시: show() 메서드로 완성된 figure를 화면에 출력합니다.
예제 코드
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
fig = plt.figure()
ax = fig.add_subplot()
fig.subplots_adjust(top=0.85)
fig.suptitle('bold figure suptitle', fontsize=14, fontweight='bold')
ax.set_title('axes title')
ax.set_xlabel('xlabel')
ax.set_ylabel('ylabel')
ax.axis([0, 10, 0, 10])
ax.text(3, 8, 'boxed italics text in data coords', style='italic',
bbox={'facecolor': 'red', 'alpha': 0.5, 'pad': 10})
ax.text(2, 6, r'an equation: $E=mc^2$', fontsize=15)
ax.text(3, 2, 'unicode: Institut für Festkörperphysik')
ax.text(0.95, 0.01, 'colored text in axes coords',
verticalalignment='bottom', horizontalalignment='right',
transform=ax.transAxes,
color='green', fontsize=15)
ax.plot([2], [1], 'o')
ax.annotate('annotate', xy=(2, 1), xytext=(3, 4),
arrowprops=dict(facecolor='black', shrink=0.05))
plt.show()실행 결과
위 코드를 실행하면 이탤릭체 박스 텍스트, 수식($E=mc^2$), 유니코드 문자열, 색상이 적용된 텍스트, 그리고 화살표가 달린 주석이 포함된 그래프가 출력됩니다. 각 텍스트 요소는 데이터 좌표 또는 축 좌표(transAxes)를 기준으로 배치되며, 필요에 따라 rotation 인자를 추가해 텍스트를 원하는 각도로 회전시킬 수 있습니다.