Seaborn

Pywiki
Sam (토론 | 기여)님의 2023년 2월 5일 (일) 18:18 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 가기 검색하러 가기

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 관련에러[편집 | 원본 편집]