Matplotlib 설정 바꾸기

Hanna Kim·2020년 12월 13일
0
post-custom-banner

seaborn의 .set을 사용해서 matplotlib 디폴트 설정을 바꾸는 방법에 대한 좋은 아티클을 찾았다.

디폴트 팔레트 설정

특정 색

사용할 색을 리스트로 만들어서 지정한다.

CB91_Blue = '#2CBDFE'
CB91_Green = '#47DBCD'
CB91_Pink = '#F3A0F2'
CB91_Purple = '#9D2EC5'
CB91_Violet = '#661D98'
CB91_Amber = '#F5B14C'
color_list = [CB91_Blue, CB91_Pink, CB91_Green, CB91_Amber,
              CB91_Purple, CB91_Violet]
plt.rcParams['axes.prop_cycle'] = plt.cycler(color=color_list)

이렇게 하면 리스트의 첫번째 색(CB01_Blue)이 지독하게 못생긴 matplotlib의 퍼런 색을 대체한다. 더 많은 색상이 필요한 경우엔 리스트 순서에 따라 나온다.

Colormind라는 사이트에서 손쉽게 팔레트를 만들 수 있다.

그라데이션

이 글에 나온 함수를 복붙해서 사용하면 그라데이션 팔레트도 만들 수 있다. 시작과 끝 색, 색상 수를 적으면 색상 코드가 나온다.
결과물을 아래와 같이 리스트에 넣어서 사용하면 된다.

#A list of hex colours running between blue and purple
CB91_Grad_BP = ['#2cbdfe', '#2fb9fc', '#33b4fa', '#36b0f8',
                '#3aacf6', '#3da8f4', '#41a3f2', '#449ff0',
                '#489bee', '#4b97ec', '#4f92ea', '#528ee8',
                '#568ae6', '#5986e4', '#5c81e2', '#607de0',
                '#6379de', '#6775dc', '#6a70da', '#6e6cd8',
                '#7168d7', '#7564d5', '#785fd3', '#7c5bd1',
                '#7f57cf', '#8353cd', '#864ecb', '#894ac9',
                '#8d46c7', '#9042c5', '#943dc3', '#9739c1',
                '#9b35bf', '#9e31bd', '#a22cbb', '#a528b9',
                '#a924b7', '#ac20b5', '#b01bb3', '#b317b1']
             
plt.rcParams['axes.prop_cycle'] = plt.cycler(color=CB91_Grad_BP)

matplotlib 세팅

seaborn의 .set()을 사용하면 디폴트 설정을 바꿀 수 있다.
.set_context()를 사용하면 차트에서 사용하는 여러 글자의 폰트 크기도 변경할 수 있다.

공식 사이트도 설명이 잘 되어 있다.

import matplotlib.pyplot as plt
import seaborn as sns
sns.set(font=’Franklin Gothic Book’,
        rc={
 ‘axes.axisbelow’: False,
 ‘axes.edgecolor’: ‘lightgrey’,
 ‘axes.facecolor’: ‘None’,
 ‘axes.grid’: False,
 ‘axes.labelcolor’: ‘dimgrey’,
 ‘axes.spines.right’: False,
 ‘axes.spines.top’: False,
 ‘figure.facecolor’: ‘white’,
 ‘lines.solid_capstyle’: ‘round’,
 ‘patch.edgecolor’: ‘w’,
 ‘patch.force_edgecolor’: True,
 ‘text.color’: ‘dimgrey’,
 ‘xtick.bottom’: False,
 ‘xtick.color’: ‘dimgrey’,
 ‘xtick.direction’: ‘out’,
 ‘xtick.top’: False,
 ‘ytick.color’: ‘dimgrey’,
 ‘ytick.direction’: ‘out’,
 ‘ytick.left’: False,
 ‘ytick.right’: False})
sns.set_context("notebook", rc={"font.size":16,
                                "axes.titlesize":20,
                                "axes.labelsize":18})

잡다한 팁

레전드 테두리 없애기

plt.legend(frameon=False)

차트 테두리 없애기
x,y축을 포함해 차트를 둘러싼 테두리를 없앨 수 있다.
left, right, bottom, top으로 명시하면 된다.

sns.despine(left=True, bottom=True)

참고한 글

profile
쌓으며 배우는 중
post-custom-banner

0개의 댓글