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

Python Matplotlib로 컬러맵 기반 극좌표 색상환(Color Wheel) 그리는 방법

Python의 Matplotlib를 사용하면 컬러맵(colormap)을 기반으로 한 극좌표 형태의 색상환(color wheel)을 손쉽게 그릴 수 있습니다. 핵심은 colorbar 클래스를 활용하고, 여기서는 copper 컬러맵을 적용하는 것입니다.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯 주변 및 사이의 여백을 조정합니다.

  • figure() 메서드를 사용해 새 figure를 생성하거나 기존 figure를 활성화합니다.

  • add_axes() 메서드로 figure에 축(axes)을 추가합니다. 이때 projection='polar' 옵션을 지정해 극좌표 축을 만듭니다.

  • 축의 방향(direction)을 설정합니다.

  • Normalize 클래스를 사용해 데이터를 선형적으로 정규화합니다.

  • 기존 축 위에 colorbar를 그립니다.

  • 아티스트(artist)의 가시성을 설정합니다.

  • X축과 Y축을 끕니다.

  • show() 메서드로 결과 figure를 화면에 표시합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt, cm, colors, colorbar

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

fig = plt.figure()
display_axes = fig.add_axes([0.1, 0.1, 0.8, 0.8], projection='polar')
display_axes._direction = 2 * np.pi

norm = colors.Normalize(0.0, 2 * np.pi)
cb = colorbar.ColorbarBase(display_axes,
                           cmap=cm.get_cmap('copper', 2056),
                           norm=norm,
                           orientation='horizontal')

cb.outline.set_visible(False)
display_axes.set_axis_off()
plt.show()

실행 결과

Python Matplotlib로 컬러맵 기반 극좌표 색상환(Color Wheel) 그리는 방법

참고 사항

위 예제에서 사용된 cm.get_cmap()은 Matplotlib 3.7 이후 버전에서 deprecated(사용 중단 예정) 상태입니다. 최신 버전을 사용한다면 plt.get_cmap('copper', 2056) 또는 matplotlib.colormaps['copper'].resampled(2056) 방식으로 대체하는 것이 좋습니다. 또한 _direction 속성은 내부(private) 속성이므로, 버전 업그레이드 시 동작이 달라질 수 있다는 점도 유의해야 합니다.