Matplotlib에는 다양한 내장 컬러맵(colormap)이 포함되어 있으며, 이를 모두 한눈에 확인하려면 애니메이션 기능을 활용하는 것이 가장 편리합니다. 아래 단계를 따라 하면 Matplotlib에서 사용 가능한 모든 컬러맵을 순차적으로 살펴볼 수 있습니다.
컬러맵 전체 목록 확인 절차
- 그림(figure) 크기를 설정하고 서브플롯 사이 및 주변의 여백(padding)을 조정합니다.
- 새 그림을 생성하거나 기존 그림을 활성화합니다.
- 서브플롯 배치의 일부로 그림에 Axes 객체를 추가합니다.
- 기존 축(ax)을 기준으로 분할된 새로운 축(컬러바 전용 영역)을 만듭니다.
- NumPy를 사용해 무작위 데이터를 생성합니다.
- imshow() 메서드로 데이터를 2D 래스터 이미지 형태로 표시합니다.
- ScalarMappable 인스턴스인 im에 대한 컬러바(colorbar)를 생성합니다.
- 현재 그림에 제목을 설정합니다.
- Matplotlib에서 사용 가능한 모든 컬러맵을 적용해 이미지를 애니메이션으로 전환합니다.
- 함수를 반복 호출하는 방식(FuncAnimation)으로 애니메이션을 구성합니다.
- show() 메서드를 사용해 그림을 화면에 표시합니다.
예제 코드
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from mpl_toolkits.axes_grid1 import make_axes_locatable
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
fig = plt.figure()
ax = fig.add_subplot(111)
div = make_axes_locatable(ax)
cax = div.append_axes('right', '5%', '5%')
data = np.random.rand(5, 5)
im = ax.imshow(data)
cb = fig.colorbar(im, cax=cax)
cmap = plt.colormaps()
tx = ax.set_title('Color map: {0}'.format(cmap[0]))
def animate(i):
cax.cla()
data = np.random.rand(5, 5)
im = ax.imshow(data, cmap=cmap[i])
fig.colorbar(im, cax=cax)
tx.set_text('Color map: {0}'.format(cmap[i]))
ani = animation.FuncAnimation(fig, animate, frames=166)
plt.show()실행 결과

코드를 실행하면 무작위로 생성된 데이터가 내장된 컬러맵을 하나씩 순서대로 적용받으며 색상이 자동으로 전환되는 애니메이션이 재생됩니다. 각 장면마다 제목에 현재 적용 중인 컬러맵의 이름이 함께 표시되므로, 어떤 컬러맵이 어떤 느낌을 주는지 쉽게 비교할 수 있습니다.
참고로 frames=166 값은 Matplotlib 버전에 내장된 컬러맵의 개수와 맞추면 됩니다. 최신 버전에서는 len(plt.colormaps())으로 개수를 직접 구해 지정할 수 있어, 버전이 달라져도 코드를 그대로 재사용할 수 있습니다.