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)
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)