파이썬 시각화 라이브러리, 사용가능한 색상 종류 확인하기


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’을 사용할 수 없다.


👩🏻‍💻개인 공부 기록용 블로그입니다
오류나 틀린 부분이 있을 경우 댓글 혹은 메일로 따끔하게 지적해주시면 감사하겠습니다.

댓글남기기