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

Matplotlib plt.colorbar 눈금 개수 설정 방법 총정리

Matplotlib에서 컬러바(colorbar)의 눈금(tick) 개수를 원하는 대로 조절하고 싶다면 set_ticks()set_ticklabels() 메서드를 사용하면 됩니다. 이 글에서는 실습 예제 코드와 함께 그 과정을 단계별로 살펴보겠습니다.

컬러바 눈금 설정 절차

  • NumPy를 이용해 랜덤 데이터를 생성합니다.
  • imshow() 함수로 데이터를 2D 이미지(래스터) 형태로 시각화합니다.
  • 이미지 스칼라 맵핑 객체를 기반으로 colorbar() 메서드를 호출해 컬러바를 생성합니다.
  • set_ticks()으로 눈금 위치를 지정하고, set_ticklabels()으로 각 눈금의 레이블을 설정합니다.
  • show() 메서드를 호출하여 최종 결과를 화면에 출력합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt

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

data = np.random.rand(4, 4)
im = plt.imshow(data, cmap="copper")

cbar = plt.colorbar(im)
cbar.set_ticks([0.2, 0.4, 0.6, 0.8])
cbar.set_ticklabels(["A", "B", "C", "D"])

plt.show()

실행 결과

Matplotlib plt.colorbar 눈금 개수 설정 방법 총정리

코드 핵심 포인트

cbar.set_ticks([0.2, 0.4, 0.6, 0.8])는 컬러바 위에 표시될 눈금의 위치(값)를 결정합니다. 이어서 cbar.set_ticklabels(["A", "B", "C", "D"])가 해당 위치에 표시될 텍스트 레이블을 지정하므로, 두 리스트의 길이는 반드시 일치해야 합니다. 이처럼 눈금 위치와 레이블을 직접 제어하면 숫자 대신 문자나 범주형 이름을 표시할 때 특히 유용합니다.

참고: 눈금 개수만 자동으로 지정하기

눈금 위치를 일일이 지정하지 않고 개수만 정하고 싶다면 Matplotlib의 ticker 모듈에 있는 MaxNLocator를 활용할 수 있습니다.

from matplotlib import ticker

cbar = plt.colorbar(im)
cbar.locator = ticker.MaxNLocator(nbins=5)  # 눈금을 최대 5개로 제한
cbar.update_ticks()

이 방법은 데이터 값에 따라 적절한 눈금 간격을 자동으로 계산해 주기 때문에, 동적인 데이터를 다루는 경우 더 편리하게 사용할 수 있습니다.