matplotlib.pyplot
을 사용한다. import seaborn as sns
import matplotlob.pyplot as plt
# 그래프 크기 지정 (가장 처음 선언해야한다.)
plt.figure(figsize=(10, 5)) # 10 x 5 크기의 공간
# 꺾은 선 그래프 : 특정 두 변수의 값에 따른 추이
sns.lineplot(x=[x 배열], y=[y 배열])
# 막대 그래프 : 범주형 데이터의 값과 그 크기를 표현
sns.barplot(x=[범주 데이터], y=[범주에 따른 값])
## 이 외에도 많은 그래프가 있음(scatterplot, boxplot 등)
# 그래프 제목 설정
plt.title('title')
# 축에 설명 추가
plt.xlabel('X label')
plt.ylabel('Y label')
# 축의 범위 설정 : 최소값, 최대값 순으로 두 개의 인자를 넣어도 되고
# 하나의 리스트에 담아서 넣어줘도 된다.
plt.xlim([min, max])
plt.ylim(min, max)
# 그래프를 표출해달라는 명령어
# notebook 환경에서는 필요없지만, 그 외의 환경에서는 필수
plt.show()
자료의 개수를 세주는 함수 Counter
collections
라이브러리에 포함되어 있다.from collections import Counter
counter = Counter([원하는 리스트])
counter.most_common(10) # 원소가 많은 순으로 10개 보여준다.
자료의 빈도를 시각적으로 보여주는 Word Cloud
- 자주 등장하는 텍스트를 중요도나 인기도를 고려해 표현하는 시각화 기법
- 핵심 키워드를 한 눈에 볼 수 있다는 장점이 있다.
- 워드 클라우드 만드는 순서
1. 자연어 문장에서 keyword 추출 -> konlpy
2. keyword가 등장한 빈도를 측정 -> Counter
3. 전처리 정보와 wordcloud
라이브러리를 사용해서 표현
- konlpy
는 한국어 형태소 분석기를 여러개 가지고 있는 라이브러리로써 JAVA
를 사용한다. JAVA_HOME
세팅이 되어 있어야한다.
```python
# 1. keyword 추출
from konlpy.tag import Hannanum # 그 외에도 okk, mecab 등 여러 종류가 있음
hannanum = Hannanum()
nouns = hannanum.nouns('형태소 분석을 원하는 문자열') # 명사만 추출 (다른 품사도 가능!)
# 2. keyword 빈도 측정
from collections import Counter
counter = Counter([nouns])
# 3. word cloud 표출
from worldcloud import WordCloud
import matplotlib.pyplot as plt
worldcloud = WordCloud(
font_path = '폰트 위치', # 한글은 깨지므로 폰트가 있는 경로를 지정하자.
width = 1000, # 가로 길이
heigh = 1000, # 세로 길이
background_color = 'white' # 배경 색상
)
# 빈도에 따른 워드 클라우드를 만든다. 반환되는 값은 이미지
img = worldcloud.generate_from_frequencies(counter)
plt.imshow(img) # 이미지를 표출하는 함수
plt.show()
```
konlpy
모듈이 얼마만큼 변했는지 확인하고 싶다.wordcloud에 폰트의 위치를 지정함으로써 한글이 표출되게 만든 것이 놀라웠다. 무조건 설정하는 코드를 따로 써왔었는데 조금더 간단하기도 하고 다양한 폰트를 활용할 수 있게 되서 신기했다.
형태소 분석기를 오랜만에 보니까 응용해서 할 수 있는 프로젝트들이 떠올랐다. 나중에 기회가 된다면 구현해보고 싶다.