"Seaborn"의 두 판 사이의 차이
둘러보기로 가기
검색하러 가기
(새 문서: = 문제사항 = === 한글 내용이 안뜨는 경우 === 한글이 안뜨는 원인은 보통 해당 폰트가 한글을 지원하지 않기 때문이다. {| class="wikitable" !의...) |
잔글 |
||
(같은 사용자의 중간 판 2개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
+ | == 개요 == | ||
+ | Matplotlib을 기반으로 통계용 차트를 위해 만들어진 라이브러리. | ||
+ | |||
+ | = 사용 = | ||
+ | |||
+ | == 그래프 그리기 == | ||
+ | {| class="wikitable" | ||
+ | !의도 | ||
+ | !설명 | ||
+ | !방법 | ||
+ | |- | ||
+ | |산점도 | ||
+ | |두 변수 간 관계성을 살필 때 사용. | ||
+ | {| class="wikitable" | ||
+ | |+옵션 | ||
+ | !옵션 | ||
+ | !설명 | ||
+ | |- | ||
+ | |hue='열이름' | ||
+ | |두 변수 외에 다른 변수를 지정. | ||
+ | 새로이 지정한 변수값에 따라 다른 색을 입힌다. | ||
+ | |- | ||
+ | | | ||
+ | | | ||
+ | |} | ||
+ | |<syntaxhighlight lang="python"> | ||
+ | import seaborn as sns | ||
+ | |||
+ | sns.scatterplot(data = df, x='열', y='열2') | ||
+ | </syntaxhighlight> | ||
+ | |- | ||
+ | |선그래프 | ||
+ | |시계열이나 변수에 따라 연속적으로 변하는 그래프를 그릴 때. | ||
+ | {| class="wikitable" | ||
+ | |+옵션 | ||
+ | !옵션 | ||
+ | !설명 | ||
+ | |- | ||
+ | |hue='열이름' | ||
+ | |두 변수 외에 다른 변수를 지정. | ||
+ | 새로이 지정한 변수값에 따라 다른 색을 입힌다. | ||
+ | |||
+ | 막대그래프를 한단계 더 나눌 수 있다.(값이 너무 많아지면 그래프 해석에 무리가 생길 수 있다.) | ||
+ | |} | ||
+ | |<syntaxhighlight lang="python"> | ||
+ | df = df.to_datetime(df['시계열']) # 보통 시계열 그래프를 그릴 땐 시간데이터가 너무 길어 x축을 읽을 수가 없다. | ||
+ | sns.lineplot(data = df, x='시계열', y='열2') | ||
+ | </syntaxhighlight> | ||
+ | |- | ||
+ | |박스그림 | ||
+ | |x축에 따라 y가 어떻게 분포되어 있는지 보기 위해. | ||
+ | |<syntaxhighlight lang="python"> | ||
+ | sns.boxplot(data=df, x='분류?', y='값') | ||
+ | </syntaxhighlight> | ||
+ | |- | ||
+ | |막대그래프 | ||
+ | |막대그래프의 경우, 개개의 데이터를 보여주는 게 아니기 때문에 통계를 낸 후에 그린다. | ||
+ | 보통 <code>agg()</code>를 통해 mean이나 count를 사용한다. | ||
+ | |||
+ | (count를 사용하는 경우엔 그냥 <code>sns.countplot</code>을 사용하는 게 빠르다.) | ||
+ | |<syntaxhighlight lang="python"> | ||
+ | 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='새로운열이름') | ||
+ | </syntaxhighlight> | ||
+ | |- | ||
+ | |이외 | ||
+ | | | ||
+ | | | ||
+ | |} | ||
+ | |||
+ | == 그래프 상세 설정 == | ||
+ | {| class="wikitable" | ||
+ | !의도 | ||
+ | !설명 | ||
+ | !방법 | ||
+ | |- | ||
+ | |그래프 범위 설정 | ||
+ | | | ||
+ | |<syntaxhighlight lang="python"> | ||
+ | plot = sns.scatterplot(data = df, x='열', y='열2') # 여기에 그냥 닷문법으로 이어서 지정할 수도 있음. | ||
+ | plot.set(xlim=(시작,끝)) # x축의 시작점과 끝점을 지정한다. | ||
+ | plot.set(ylim=(시작,끝)) # y축의 시작점과 끝점을 지정한다. | ||
+ | plot.set(xlim=(시작,끝), ylim=(시작,끝)) # 필요한 속성은 추가해 넣으면 된다. | ||
+ | </syntaxhighlight> | ||
+ | |} | ||
+ | |||
= 문제사항 = | = 문제사항 = | ||
− | === 한글 내용이 안뜨는 경우 === | + | === 한글 내용이 안뜨는 경우. 한글폰트 깨짐. === |
한글이 안뜨는 원인은 보통 해당 폰트가 한글을 지원하지 않기 때문이다. | 한글이 안뜨는 원인은 보통 해당 폰트가 한글을 지원하지 않기 때문이다. | ||
{| class="wikitable" | {| class="wikitable" | ||
20번째 줄: | 109번째 줄: | ||
|<syntaxhighlight lang="python"> | |<syntaxhighlight lang="python"> | ||
plt.rc('font', family='Gulim') | plt.rc('font', family='Gulim') | ||
+ | </syntaxhighlight> | ||
+ | |} | ||
+ | |||
+ | === - 깨짐. 음수 깨짐. === | ||
+ | 음수가 되는 경우, 글자가 깨지는 경우. | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | |폰트 지정 | ||
+ | | | ||
+ | |<syntaxhighlight lang="python"> | ||
+ | plt.rc('axes', unicode_minus=False) # '-'값이 나오면 글자가 깨지는데, 이를 방지하기 위한 설정. | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} |
2023년 2월 5일 (일) 18:18 기준 최신판
1 개요[편집 | 원본 편집]
Matplotlib을 기반으로 통계용 차트를 위해 만들어진 라이브러리.
2 사용[편집 | 원본 편집]
2.1 그래프 그리기[편집 | 원본 편집]
의도 | 설명 | 방법 | ||||||
---|---|---|---|---|---|---|---|---|
산점도 | 두 변수 간 관계성을 살필 때 사용.
|
import seaborn as sns
sns.scatterplot(data = df, x='열', y='열2')
| ||||||
선그래프 | 시계열이나 변수에 따라 연속적으로 변하는 그래프를 그릴 때.
|
df = df.to_datetime(df['시계열']) # 보통 시계열 그래프를 그릴 땐 시간데이터가 너무 길어 x축을 읽을 수가 없다.
sns.lineplot(data = df, x='시계열', y='열2')
| ||||||
박스그림 | x축에 따라 y가 어떻게 분포되어 있는지 보기 위해. | sns.boxplot(data=df, x='분류?', y='값')
| ||||||
막대그래프 | 막대그래프의 경우, 개개의 데이터를 보여주는 게 아니기 때문에 통계를 낸 후에 그린다.
보통 (count를 사용하는 경우엔 그냥 |
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) # '-'값이 나오면 글자가 깨지는데, 이를 방지하기 위한 설정.
|