[seaborn] color 팔레트 선택하기

본 포스팅에서는 seaborn에서 색상을 선택하는 방법에 대해 소개한다.

크게 네 가지 영역으로 나눠서 다뤄볼 수 있겠다.

  1. 팔레트(palette) 설정하는 방법
  2. seaborn의 기본 built-in 팔레트 사용하기
  3. Color Brewer 팔레트 사용하기
  4. 데이터에 따라 적절한 팔레트를 선택하는 방법

1. 팔레트(palette) 설정하는 방법

seaborn에서는 sns.color_palette()를 사용해 팔레트를 설정할 수 있다. RGB, hex 코드, HTML 등을 활용해 직접 팔레트를 구성하는 것도 가능하다. (귀찮게 이걸 언제 해. 그냥 있는 거 쓰자.)

만약 팔레트를 확인하고 싶다면 이렇게 할수 있다.

# 팔레트를 변수로 저장하고
palette = sns.color_palette("bright")

# palplot을 통해 저장한 팔레트를 불러온다.
sns.palplot(palette)

실제로 사용하려면 plot을 그리기 전에 미리 sns.set_palette()로 선언하면 된다.

sns.set_palette("Paired")
sns.stripplot(x="day", y="total_bill", data=tips)

2. seaborn의 기본 built-in 팔레트 사용하기

seaborn은 기본적으로 matplotlib보다 예쁘다. 기본 색상표가 더 낫다는 의미다.

이게 matplotlib 기본 팔레트이고

이게 seaborn 기본 팔레트다.

뭐가 더 나은가. 취향의 문제? 아무튼…

그래서 만약 matplotlib으로 플롯을 그린다고 하더라도 sns.set()을 미리 선언해주면 좋다. 알아서 seaborn 기본 팔레트로 그려주기 때문이다.

그리고 seaborn은 총 6개의 기본 팔레트를 제공하고 있다. deepmutedpastelbrightdark, colorblind.

그래서 만약 pastel로 그리고 싶다면 그냥 이렇게.

sns.set_palette("pastel")
sns.stripplot(x="day", y="total_bill", data=tips)

결국 대부분은 귀찮아서 기본 팔레트 6개 중 하나를 선택하는 이 방법을 쓰게 될 거다.

그런데 seaborn에서는 기본 이외에도 꽤나 괜찮은 팔레트 옵션을 제공하고 있다…!

3. Color Brewer 팔레트 사용하기

Color Brewer는 지도 제작자 Cindy Brewer의 연구에서 영감을 얻어 만들어진 팔레트 세트의 이름이라고 한다. 이 팔레트는 카테고리에 순서가 있을 때 사용하면 유용하다. (색조나 밝기가 다 달라서 색맹들도 쉽게 읽을 수 있는 조합이라고 한다.)

사용할 땐 왼쪽에 제시된 팔레트의 이름을 직접 전달하면 된다.

예를 들어 “Paired”라는 팔레트의 9개 색상을 가져오고 싶다면 이렇게.

custom_palette = sns.color_palette("Paired", 9)
sns.palplot(custom_palette)

더 자세한 내용은 Color Brewer 홈페이지를 참고하자.

4. 데이터에 따라 적절한 팔레트를 선택하는 방법

Color Brewer 팔레트 표를 보면 오른쪽에 3개의 카테고리가 있다. 어떤 데이터에 사용하면 좋은지 알려주는 힌트라고 봐도 된다.

1) Qualitative

Qualitative 팔레트는 범주형 자료에 쓰면 좋다. 특정 순서를 암시하지 않는, 그냥 고유한 색상이라고 볼 수 있기 때문니다.

qualitative_colors = sns.color_palette("Set3", 10)
sns.palplot(qualitative_colors)

2) Sequential

Sequential 팔레트는 밝은 색부터 어두운 색까지 연속적으로 나타나기 때문에 등급과 같은 데이터에 사용하면 좋다. 결국 높은 값(어두운 색)이 강조된다.

sequential_colors = sns.color_palette("RdPu", 10)
sns.palplot(sequential_colors)

3) Diverging

Diverging 팔레트는 양쪽으로 강조가 되기 때문에 낮은 값과 높은 값에 모두 관심을 가져야 하는 데이터 세트에 적합하다.

diverging_colors = sns.color_palette("RdBu", 10)
sns.palplot(diverging_colors)

데이터 시각화에서 색상은 정말 정말 중요하다.
seaborn을 사용한다면 Color Brewer 팔레트 세트를 활용해
자신이 가진 데이터에 적합한 팔레트를 골라보자.

추천 글


“[seaborn] color 팔레트 선택하기”의 2개의 댓글

댓글 남기기