Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib에서 텍스트 주석을 선 기울기에 맞춰 회전하는 방법

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()

실행 결과

Matplotlib에서 텍스트 주석을 선 기울기에 맞춰 회전하는 방법

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