데이터 시각화 작업을 하다 보면 그래프에 연결되지 않은 독립적인 컬러바(colorbar)가 필요한 경우가 있습니다. 이 글에서는 Matplotlib에서 별도의 플롯 없이 컬러바만 단독으로 생성하는 방법을 예제 코드와 함께 단계별로 살펴보겠습니다.
구현 단계
- 그림(figure) 크기를 설정하고 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
- 그림과 서브플롯 세트를 생성합니다.
- 서브플롯 레이아웃 매개변수를 조정하여 컬러바가 들어갈 공간을 확보합니다.
mpl.colors.Normalize를 사용해 표시할 값의 최솟값(vmin)과 최댓값(vmax) 범위를 정규화합니다.mpl.colorbar.ColorbarBase를 호출하여 가로(horizontal) 방향의 컬러바 인스턴스 (cb)를 생성합니다.plt.show()메서드를 사용해 결과를 화면에 표시합니다.
예제 코드
import matplotlib.pyplot as plt import matplotlib as mpl # 그림 크기 설정 plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True # 그림과 서브플롯 생성 fig, ax = plt.subplots() # 서브플롯 레이아웃 매개변수 조정 fig.subplots_adjust(bottom=0.5) # 값 범위 정규화 norm = mpl.colors.Normalize(vmin=5, vmax=10) # 컬러바 인스턴스 생성 cb = mpl.colorbar.ColorbarBase(ax, cmap=mpl.cm.cool, norm=norm, orientation='horizontal') # 결과 표시 plt.show()
실행 결과
위 코드를 실행하면 축이나 데이터 플롯 없이 cool 컬러맵이 적용된 가로형 컬러바만 화면에 나타납니다. 컬러바의 눈금은 vmin=5부터 vmax=10까지의 값을 기준으로 표시됩니다.

핵심 포인트 정리
이 기법의 핵심은 ColorbarBase 클래스입니다. 일반적으로 컬러바는 plt.colorbar()를 통해 기존 플롯에 자동으로 연결되지만, ColorbarBase에 Axes 객체와 컬러맵(cmap), 정규화(norm) 객체를 직접 전달하면 어떤 플롯과도 연결되지 않은 완전히 독립적인 컬러바를 만들 수 있습니다. 이는 컬러 스케일 참조표나 범례를 별도로 제작할 때 특히 유용합니다.