본 포스트는 inflearn 의 '캐글로 시작하는 머신러닝, 딥러닝 분석'(대구빅데이터활용센터) 강의 내용을 기반으로 실습을 진행하며 작성하였습니다.
안녕하세요?
지난 번 포스트에서는 pandas 를 이용하여 데이터를 처리해보았습니다.
이번 포스트에서는 Seaborn, Matplot 등의 라이브러리를 사용하여 데이터를 시각화해보도록 하겠습니다.
Matplotlib , Missingno 라이브러리를 이용한 결측치(null) 시각화
아래의 코드를 입력하여 matplot, missingno 라이브러리를 임포트 합니다.
import matplotlib.pyplot as plt # data visualization
import missingno as msno #missing value(null value) visualization
- matplotlib : 다양한 데이터를 많은 방법으로 도식화 할 수 있도록 하는 파이썬 라이브러리로써,
matplotlib을 이용하면 numpy나 pandas에서 사용되는 자료구조를 쉽게 시각화 할 수 있습니다.
- missingno : 데이터 전처리에서 이상치를 발견하고 처리하거나 결측치를 확인하고 처리하는 작업이 반드시 필요한데,
missingno 라이브러리를 사용하면 이러한 값들의 시각화를 통해 간단하게 확인 가능합니다.
아래의 코드를 입력하여 결측치를 시각화합니다.
#결측치 시각화
msno.matrix(df)
plt.show()
코드를 실행해보시면, 아래와 같이 그래프에 결측치가 표시되는데, 현재는 결측치가 없기 때문에 모두 빈 값으로 조회됩니다.
Seaborn 라이브러리로 데이터 시각화
아래의 코드를 입력하여 Seaborn 라이브러리를 임포트 합니다.
import seaborn as sns #data distribution visualization
- Seaborn : matplotlib 를 기반으로 하는 Python 데이터 시각화 라이브러리로 매력적이고 유익한 통계 그래픽을 그리기 위한 고급 인터페이스를 제공합니다.
Seaborn 은 Matplotlib 위에 구축된 Python 플로팅 라이브러리이며, Matplotlib보다 더 보기 좋은 스타일 기본값으로 데이터 세트를 빠르게 시각화하는 간결하지만 제한된 접근 방식을 허용합니다.
Seaborn 라이브러리를 활용하여 boxplot 을 그려주기 위해 아래와 같이 코드를 입력합니다.
a, b = plt.subplots(4,1, figsize=(10,5)) # 그래프를 그려줄 축의 갯수, 그래프 크기 등을 할당
sns.boxplot(df['year'], df['cnt'], ax=b[0]) # year와 cnt 관계를 boxplot으로 나타냄
sns.boxplot(df['month'], df['cnt'], ax=b[1]) # month 와 cnt 관계를 boxplot으로 나타냄
sns.boxplot(df['dayofweek'], df['cnt'], ax=b[2]) # dayofweek 와 cnt 관계를 boxplot으로 나타냄
sns.boxplot(df['hour'], df['cnt'], ax=b[3]) # hour 와 cnt 관계를 boxplot으로 나타냄
위의 코드를 간단히 설명드리자면
- plt.subplots : matplotlib 라이브러리의 함수로, 여러 개의 그래프를 행렬 형태로 그리기 위한 함수입니다.
자세한 함수 설명은 matplotlib documentation 에서 보실 수 있습니다.
- sns.boxplot : Seaborn 라이브러리의 함수로, 데이터 프레임을 받아서 특정 그래프에 boxplot 을 그려주는 함수입니다.
자세한 함수 설명은 Seaborn documentation 에서 보실 수 있습니다.
위의 코드를 실행해보시면 아래와 같이 여러 개의 boxplot 그래프가 그려지는 것을 볼 수 있습니다.(Warning은 무시하셔도 됩니다.)
boxplot에 대한 설명이 필요하시다면 박스플롯(box plot) 이란? 글을 참조해주시기 바랍니다.
다음은, 데이터를 input으로 입력하면 그에 해당하는 barplot을 그려주는 함수를 만들어보겠습니다.
아래와 같이 코드를 입력합니다.
# bar 그래프 그려주는 그래프 함수 만들기
def ploat_bar(data, feature):
fig = plt.figure(figsize=(12,3))
sns.barplot(x=feature, y='cnt', data=data, palette='Set3')
위의 코드는 ploat_bar 라는 함수를 만들고,
이 함수에서는 데이터와 칼럼명을 input 값으로 받아서 barplot 을 그려주는 함수입니다.
Seaborn 라이브러리의 barplot 함수에 대한 자세한 설명은 Seaborn documentation 을 참고하시기 바랍니다.
위의 코드를 실행하고, 아래의 코드를 입력하여 함수를 호출해봅니다.
ploat_bar(df, 'hour') #ploat_bar 함수 사용
그러면 아래와 같이 저희가 이전에 생성한 데이터 프레임에 대해서 'hour' 칼럼에 대한 'cnt'값을 보여주는 아래와 같은 barplot이 그려집니다.
이상으로 여러 라이브러리를 활용한 데이터 시작화를 해보았습니다.
다음 포스트에서는 데이터 전처리를 진행해보겠습니다.
Reference
[Inflearn]'캐글로 시작하는 머신러닝
딥러닝 분석'(대구빅데이터활용센터)