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()
실행 결과

코드 핵심 포인트
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()
이 방법은 데이터 값에 따라 적절한 눈금 간격을 자동으로 계산해 주기 때문에, 동적인 데이터를 다루는 경우 더 편리하게 사용할 수 있습니다.