[Matplotlib] Colormap(cmap) 종류 확인하기
파이썬 시각화 라이브러리, 사용가능한 색상 종류 확인하기
1. 색상 종류
matplotlib.pyplot 라이브러리를 로드한 후, 아래 코드와 같이 작성하면 사용가능한 색상 종류(이름)을 확인할 수 있다.
import matplotlib.pyplot as plt
print(plt.colormaps())
2. 색상 확인
목적 : cmap 종류별로 어떤 색조합을 가지는지 확인한다.
(1) 코드 공유
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
# cmap 리스트를 cmap_list 변수에 할당
cmap_list = sorted(plt.colormaps())
slice_num = int(len(cmap_list)/2)
# 총 178개의 요소가 있어 두 차례 나눠서 시각화 진행, 두 리스트로 나누기
cmap_list1 = cmap_list[:slice_num-1] # 88개
cmap_list2 = cmap_list[slice_num-1:] # 90개
# 시각화를 위한 데이터 생성
x = np.random.normal(0, 1, 100)
y = np.random.normal(0, 1, 100)
h = np.random.randint(0, 5, 100)
# 시각화 함수 생성
def draw_cmap_graph(cmap_list, save_filename):
# 1을 더해준 이유 : 90//4 로 구하면 마지막 2개 그래프가 안그려짐
n_row = len(cmap_list)//4+1
n_col = 4
fig, axes = plt.subplots(nrows=n_row, ncols=n_col, figsize=(15, 4*n_row))
for i, cmap_name in enumerate(cmap_list):
# 오류 메시지 발생하는 경우가 있어, try-except 사용
try:
sns.scatterplot(x=x, y=y, hue=h,
palette=cmap_name,
ax=axes[i//4][i%4]).set_title(f"cmap: {cmap_name}")
except:
pass
# 생성된 그래프를 png 파일로 저장
plt.savefig(f'{save_filename}.png')
plt.show()
draw_cmap_graph(cmap_list1, 'cmap_list1')
draw_cmap_graph(cmap_list2, 'cmap_list2')
🚨 Warning sign
위 코드를 실행시키면 그래프가 안그려진 부분이 보일 것이다. cmap_list2를 그렸을 때, warning sign이 떠서 try-expect 문을 추가했는데 경고 메시지가 뜬 이유가 특정 색상 때문이었다.
- cmap_list의 요소 중 ‘jet’ 을 사용해 그래프를 단독으로 그려보았을 때에도 ValueError: No 라는 메시지가 떴다.
- stackoverflow 에 올라온 질문의 답변을 통해 이유를 알 수 있었다.
- seaborn 에는 jet 컬러 팔레트가 지원되지 않는다.
- ‘jet’ 컬러를 사용하려면 Matplotlib 을 사용하거나 사용자 지정 색상 팔레트를 사용해야한다.
seaborn에선 colomap 중 ‘jet’을 사용할 수 없다.
👩🏻💻개인 공부 기록용 블로그입니다
오류나 틀린 부분이 있을 경우 댓글 혹은 메일로 따끔하게 지적해주시면 감사하겠습니다.
댓글남기기