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

matplotlib 극좌표 플롯에 보조 눈금(Minor Ticks) 만드는 방법

matplotlib에서 극좌표(polar) 플롯에 보조 눈금을 추가하려면 각도 방향으로 짧은 눈금 선을 직접 그려주는 방식을 사용할 수 있습니다. 아래 단계를 따라 구현해 보겠습니다.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯 주변의 여백을 조정합니다.
  • numpy를 사용하여 반지름(r)과 각도(theta) 데이터를 생성합니다.
  • 현재 그림에 극좌표 투영(projection='polar') 방식의 서브플롯을 추가합니다.
  • 0도부터 360도까지 step=10 간격으로 점을 순회하면서 짧은 눈금 선을 그립니다.
  • plt.show() 메서드로 결과 그림을 화면에 표시합니다.

예제 코드

import numpy as np
import matplotlib.pyplot as plt

# 그림 크기 설정
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

# 극좌표 플롯을 위한 반지름과 각도 데이터
r = np.arange(0, 5, 0.1)
theta = 2 * np.pi * r

# 극좌표 투영 서브플롯 추가
ax = plt.subplot(111, projection='polar')

# 바깥쪽 원(rmax)과 약간 안쪽 위치 사이에 눈금 선을 그리기 위한 좌표
tick = [ax.get_rmax(), ax.get_rmax() * 0.97]

# 0도부터 360도까지 10도 간격으로 눈금 선 그리기
for t in np.deg2rad(np.arange(0, 360, 10)):
    ax.plot([t, t], tick, lw=1, color="red")

# 플롯 표시
plt.show()

실행 결과

위 코드를 실행하면 극좌표 플롯의 가장자리를 따라 빨간색 보조 눈금이 10도 간격으로 표시됩니다.

matplotlib 극좌표 플롯에 보조 눈금(Minor Ticks) 만드는 방법

코드 설명

핵심 아이디어는 matplotlib가 기본적으로 제공하는 눈금 설정 대신, ax.plot()을 이용해 각도 위치마다 아주 짧은 선분을 직접 그리는 것입니다. tick 리스트는 눈금 선의 시작점(바깥쪽 경계)과 끝점(경계의 97% 지점)을 나타내며, 이 값의 비율을 조절하면 눈금의 길이를 자유롭게 변경할 수 있습니다. 또한 np.deg2rad()로 도(degree) 단위를 라디안으로 변환해야 극좌표 축에서 올바른 위치에 눈금이 그려집니다.