Matplotlib에서 주석(텍스트)을 선의 기울기 방향과 일치하도록 회전하려면, 선의 기울기를 이용해 회전 각도를 계산한 뒤 text() 메서드에 적용하면 됩니다. 아래 단계를 따라 해 보세요.
구현 단계
- figure() 메서드를 사용해 새 그림(Figure)을 생성하거나 기존 그림을 활성화합니다.
- add_subplot() 메서드로 그림에 '~.axes.Axes' 객체를 서브플롯 형태로 추가합니다.
- 직선의 기울기(m)와 y절편(c) 변수를 초기화합니다.
- numpy를 사용해 x, y 데이터 포인트를 생성합니다.
- 기울기 m의 역탄젠트(arctan) 값을 구해 텍스트 회전 각도(theta)를 계산합니다.
- plot() 메서드로 x, y 데이터를 이용해 직선을 그립니다.
- text() 메서드로 선 위에 텍스트를 배치하고, 계산한 각도만큼 회전시킵니다.
- show() 메서드로 그림을 화면에 표시합니다.
예제 코드
import numpy as np 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() m = 1 c = 1 x = np.linspace(-2, 2, 10) y = m*x + c theta = np.arctan(m) line, = ax.plot(x, y) ax.text(x=x[2], y=y[2]+.25, s="y=mx+c", rotation=180.0*(1-theta), fontsize=15, color='green') plt.show()
실행 결과

핵심은 np.arctan(m)으로 기울기에 해당하는 각도를 라디안 단위로 구하는 것입니다. 이 값을 text()의 rotation 인자에 전달하면 텍스트가 직선의 방향을 따라 자연스럽게 기울어져 배치됩니다. 기울기 m이나 절편 c 값을 바꾸면 선과 함께 텍스트의 회전 각도와 위치도 자동으로 조정되므로, 임의의 직선 방정식(y = mx + c)에 대해서도 동일하게 적용할 수 있습니다.