Home 개굴캐글개굴 시각화 정리
Post
Cancel

개굴캐글개굴 시각화 정리

Tab_study를 진행하면서 공부한 시각화(Matplotlib, Seaborn)에 대해 정리해보려 한다.

시각화란?

데이터 시각화는 차트, 그래프 또는 맵과 같은 시각적 요소를 사용해 데이터를 표시하는 것을 말한다.

시각화를 사용하는 이유?

  • 머신러닝 모델의 데이터 전처리나 데이터 특성 파악 시 큰 도움을 준다.
  • 많은 양의 데이터를 시각화를 통해 한눈에 보기 쉽다.
  • 데이터 분석을 진행하면서, 누구나 쉽게 데이터 인사이트를 찾을 수 있다.

Matplotlib

Matplotlib Import하기

1
import matplotlib.pyplot as plt

일반적으로 Matplotlib을 줄여서 plt로 import한다.

Matplotlib 시각화 하는법

1
2
3
4
5
6
# plt.figure()는 주로 figure의 크기를 조절하는 데 사용됨.
plt.figure(figsize=(10, 4)) # figure 크기가 가로 10, 세로 4인 Figure객체를 설정하고 반환함. 

plt.plot([1, 2, 3], [2, 4, 6])  # 선형 그래프를 그려줌
plt.title("Hello plot")  # 그래프의 제목을 붙여준다
plt.show() # 시각화 한 것을 보여준다

plot : 선형 그래프, bar : 막대 그래프를 보여준다. hist : 히스토그램 그래프를 보여준다. 코드들의 주석 설명처럼 작동한다.

출력값

다수의 그래프를 시각화 하는법

1
fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(10, 6))

출력값

Matplotlib의 subplot을 이용해 다수의 그래프를 시각화 할 수 있다.

Seaborn

seaborn은 matplotlib을 기반으로 하여 시각화를 보다 쉽게 만들어준다.

Seaborn Import하기

1
import seaborn as sns

Seaborn 시각화 하는법

1
2
3
4
# seaborn에서도 figure로 canvas의 사이즈를 조정
# Pandas DataFrame의 컬럼명을 자동으로 인식해서 xlabel값을 할당. ylabel 값은 histogram일때 Count 할당. 
plt.figure(figsize=(12, 6))
sns.histplot(x='Age', data=titanic_df, kde=True, bins=30)

seaborn에서는 편리하게 데이터프레임의 컬럼명을 자동으로 인식해서 xlabel값을 할당. ylabel 값은 histogram일때 Count를 할당한다.

Seaborn의 여러 그래프

countplot

countplot은 카테고리 값에 대한 건수를 표현한다. x축이 카테고리값, y축이 해당 카테고리값에 대한 건수를 나타낸다.

1
sns.countplot(x='Pclass', data=titanic_df)

barplot

barplot은 x축은 이산값(주로 category값), y축은 연속값(y값의 평균/총합)을 표현한다.

1
sns.barplot(x='Pclass', y='Age', data=titanic_df)

histplot

연속값에 대한 구간별 도수 분포를 시각화

1
sns.histplot(x='Age', data=titanic_df, kde=True, bins=30)

kde를 True로 하면 선형 그래프를 보여준다.

violinplot

  • 단일 컬럼에 대해서는 히스토그램과 유사하게 연속값의 분포도를 시각화. 또한 중심에는 4분위를 알수있음.
  • 보통은 X축에 설정한 컬럼의 개별 이산값 별로 Y축 컬럼값의 분포도를 시각화하는 용도로 많이 사용
1
sns.violinplot(y='Age', data=titanic_df)

boxplot

  • 4분위를 박스 형태로 표현
  • x축값에 이산값을 부여하면 이산값에 따른 box plot을 시각화
1
sns.boxplot(y='Age', data=titanic_df)

위의 검은색 점들은 outlier(이상치)인걸 알 수 있음.

heatmap

컬럼간의 상관도를 Heatmap형태로 표현

1
2
3
4
# DataFrame의 corr()은 숫자형 값만 상관도를 구함. 
corr = titanic_df.corr()

sns.heatmap(corr, annot=True, fmt='.1f',  linewidths=0.5, cmap='YlGnBu')

annot을 True로 해주면 상관계수를 수치형으로 확인 할 수 있다.

느낀점

데이터를 전처리하면서 일반 표나 수치형 데이터만 보면 전처리가 힘들 수 있지만, 시각화를 통해 한 눈에 알아보기 쉽게 보여진다면 feature간의 중요도, 상관관계 등을 보다 쉽게 알 수 있다. 또한 전처리를 하기 수월해진다. 따라서 시각화에 대해 잘 알아두고, 공부해봐야겠다.

This post is licensed under CC BY 4.0 by the author.