1 개요
Matplotlib을 기반으로 통계용 차트를 위해 만들어진 라이브러리.
2 사용
2.1 그래프 그리기
의도
|
설명
|
방법
|
산점도
|
두 변수 간 관계성을 살필 때 사용.
옵션
옵션
|
설명
|
hue='열이름'
|
두 변수 외에 다른 변수를 지정.
새로이 지정한 변수값에 따라 다른 색을 입힌다.
|
|
|
|
import seaborn as sns
sns.scatterplot(data = df, x='열', y='열2')
|
선그래프
|
시계열이나 변수에 따라 연속적으로 변하는 그래프를 그릴 때.
옵션
옵션
|
설명
|
hue='열이름'
|
두 변수 외에 다른 변수를 지정.
새로이 지정한 변수값에 따라 다른 색을 입힌다.
막대그래프를 한단계 더 나눌 수 있다.(값이 너무 많아지면 그래프 해석에 무리가 생길 수 있다.)
|
|
df = df.to_datetime(df['시계열']) # 보통 시계열 그래프를 그릴 땐 시간데이터가 너무 길어 x축을 읽을 수가 없다.
sns.lineplot(data = df, x='시계열', y='열2')
|
박스그림
|
x축에 따라 y가 어떻게 분포되어 있는지 보기 위해.
|
sns.boxplot(data=df, x='분류?', y='값')
|
막대그래프
|
막대그래프의 경우, 개개의 데이터를 보여주는 게 아니기 때문에 통계를 낸 후에 그린다.
보통 agg() 를 통해 mean이나 count를 사용한다.
(count를 사용하는 경우엔 그냥 sns.countplot 을 사용하는 게 빠르다.)
|
df = df_origin.groupby('x축에 둘 열이름', as_index=False) # 분류할 때 해당 열이 인덱스가 되지 않게끔.
# 보통은 분류 후에 평균값이나 최댓값 등을 계산하여 통계화 한 후에 그래프를 만든다.
df = df.agg(새로운열이름 = ('계산할열', 'mean')) # 새로운열이름은 따옴표로 감싸지 않음에 유의, mean 등 다양한 방식이 가능하다.
df = df.sort_values('새로운열이름', ascending = True) # 보통은 정렬하여 그래프를 그린다.
sns.barplot(data = df, x='x축에 둘 열이름', y='새로운열이름')
|
이외
|
|
|
2.2 그래프 상세 설정
의도
|
설명
|
방법
|
그래프 범위 설정
|
|
plot = sns.scatterplot(data = df, x='열', y='열2') # 여기에 그냥 닷문법으로 이어서 지정할 수도 있음.
plot.set(xlim=(시작,끝)) # x축의 시작점과 끝점을 지정한다.
plot.set(ylim=(시작,끝)) # y축의 시작점과 끝점을 지정한다.
plot.set(xlim=(시작,끝), ylim=(시작,끝)) # 필요한 속성은 추가해 넣으면 된다.
|
3 문제사항
3.1 한글 내용이 안뜨는 경우. 한글폰트 깨짐.
한글이 안뜨는 원인은 보통 해당 폰트가 한글을 지원하지 않기 때문이다.
의도
|
설명
|
방법
|
폰트 목록 얻기
|
사용할 수 있는 폰트의 목록을 얻는다.
|
import matplotlib.font_manager as fm
font_list = [font.name for font in fm.fontManager.ttflist]
|
폰트 지정
|
위 리스트에서 얻은 폰트를 지정한다.
|
plt.rc('font', family='Gulim')
|
3.2 - 깨짐. 음수 깨짐.
음수가 되는 경우, 글자가 깨지는 경우.
폰트 지정
|
|
plt.rc('axes', unicode_minus=False) # '-'값이 나오면 글자가 깨지는데, 이를 방지하기 위한 설정.
|
3.3 관련에러