본문 바로가기
프로그래밍/Python

001. 파이썬 Seaborn으로 색상 지정하기

by life_is_egg 2021. 8. 21.
반응형

 목차 

1. Seaborn 색상표(color palettes)

2. Seaborn 색상 지정하는 코드

3. 직접 원하는 색깔 지정하기


1. Seaborn 색상표(color palettes)

 

그래프를 그리고 데이터를 시각화하고자 할 때 기본 색상을 수정하고 싶은 생각이 든다.

색상을 잘 설정하기만 해도 좀 더 효과적으로 데이터 결과가 눈에 보인다.

 

먼저, seaborn에 지정된 기본 팔레트를 살펴본 후에 그 외에 내가 원하는 색상을 지정하는 방법을 알아볼 것이다.


Seaborn 색상팔레트를 불러내고 싶다면 아래의 코드를 사용하면 된다.

따옴표("") 안에 원하는 색상팔레트 이름을 입력하면 된다.

 

" sns.color_palette: 색상 리스트를 불러내줘

sns.palplot: 어떤 색인지 직접 보여줘 "

sns.palplot(sns.color_palette("tab10"))
sns.palplot(sns.color_palette("hls"))

[seaborn palette] tab10
[seaborn palette] hls

 

그 외 다른 팔레트

더 많은 seaborn 색상팔레트를 알고 싶다면, 다음의 사이트를 참고하면 된다.

 

각 팔레트 별로 성격이 다르기 때문에 박스, 선형, 원형 등 그래프 특성에 맞춰 다른 팔레트를 써주면 좋을 것 같다.

범주형(category) 자료 말고도 수치형(continuous) 자료에 적합한 팔레트도 있다.

[seaborn palette] husl
[seaborn palette] Set2
[seaborn palette] Set3
[seaborn palette] Paired


2. Seaborn 색상 지정하는 코드

예시로 그래프를 그리기 위해 Kaggle에서 다운 받은 데이터를 활용했다.

심장병과 관련된 정보가 담긴 데이터이다.

heart.csv
0.01MB


불러온 데이터셋

가슴 통증 유형과 고혈압 연관성에 대한 박스플랏을 그렸다.

성별을 서브그룹으로 설정했다. 

import pandas as pd
import seaborn as sns

df = pd.read_csv('heart.csv')

sns.catplot(data=df, x='cp', y='trestbps', hue='sex', kind='box')

 

 

색상팔레트를 변경하기 위한 코드는 간단하다.

sns.<plot>(<option>) 형태 중 괄호 속에 palette='팔레트명'을 추가하면 된다.

 

# Palette: Paired
sns.catplot(data=df, x="cp", y="trestbps", hue="sex", kind='box', palette='Paired')

 

# Palette: Set2
sns.catplot(data=df, x="cp", y="trestbps", hue="sex", kind='box', palette='Set2')


3. 직접 원하는 색상 지정하기

seaborn 색상 팔레트만으로 내가 원하는 색상을 충족시키기에는 부족하다.

직접 색상코드를 사용해서 파이썬 그래프의 색깔을 바꾸는 방법에 대해 알아볼 것이다.

 

초록창에 '색상코드표'라고 검색하거나 구글링하면 많은 색상코드표가 나온다.

 

 

원하는 색상의 색상코드표를 찾은 후, 리스트(list)에 넣는다.

리스트를 팔레트 형태로 만들어 seaborn에 저장하면 된다.

 

아래의 그래프처럼 색상이 변한 것을 볼 수 있다.

 

 

" sns.set_palette: 새로운 팔레트 설정해줘 "

colors = ["#FF73B8", "#FFFF36"]
sns.set_palette(sns.color_palette(colors))

sns.catplot(data=df, x="cp", y="trestbps", hue="sex", kind='box')


간단한 방법으로 파이썬 그래프의 색상을 바꿀 수 있다.

위에서 나온 그래프 색을 비교해보며 마치겠다.

기본 > Paired
Set2 > my palette

 

반응형

댓글