728x90
이번에 소개할 내용은 밑시딥 1장의 뒤부분, "시각화"이다.
파이썬에서 사용되는 시각화 패키지는 크게 2가지 인데 첫 째는 Matplotlib(맷플롯립), 둘 째는 Seaborn(시본)이다.
그래서 이 두 패키지에 대해 내용을 정리해보려고 한다.
시각화에 사용할 데이터는 타이타닉 데이터
타이타닉 데이터 - 많은 사람들이 알고 있는 데이터이기도 하고 범주형과 수치형 변수가 함께 섞여 있어서 시각화하기에 좋다고 판단.
1. Matplotlib 패키지
- 파이썬의 Matplotlib 패키지는 데이터 시각화를 위한 강력한 도구로, 그래프, 차트, 플롯 등 다양한 형태의 시각화를 생성가능. 이를 통해 데이터를 이해하고 효과적으로 전달할 수 있다.
- Matplotlib의 주요 모듈 중 하나는 pyplot. pyplot은 MATLAB 스타일의 인터페이스를 제공하여, 간단하고 직관적인 방식으로 그래프를 생성할 수 있고 또한, Matplotlib는 객체 지향적 접근 방식도 제공하여 그래프를 더욱 세밀하게 제어할 수 있다.
- 패키지 임포트
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib.font_manager as fm
# 폰트 경로 지정
font_location = 'C:/Windows/Fonts/LG_Smart_UI-Bold.ttf' # 원하는 폰트 파일 경로로 변경해주세요
font_name = fm.FontProperties(fname=font_location).get_name()
plt.rcParams['font.family'] = font_name
titanic = pd.read_csv('titanic.csv')
- Line plot
# plt 패키지의 line plot
plt.plot(titanic['Age'], titanic['Fare'])
plt.title("나이와 운임의 관계")
plt.xlabel("나이")
plt.ylabel("운임")
# 그래프 출력
plt.show()
- Scatter plot
# plt 패키지의 scatter plot
plt.scatter(titanic['Age'], titanic['Fare'])
# 제목과 축 레이블 추가
plt.title("나이와 운임의 관계")
plt.xlabel("나이")
plt.ylabel("운임료")
# 그래프 출력
plt.show()
- Histogram
# plt 패키지의 Histogram
plt.hist(titanic['Age'])
# 제목과 축 레이블 추가
plt.title("승객의 나이 분포")
plt.xlabel("나이")
plt.ylabel("빈도")
# 그래프 출력
plt.show()
- Bar plot
# plt 패키지의 bar plot
plt.bar(titanic['Age'], titanic['Fare'])
# 제목과 축 레이블 추가
plt.title("성별과 운임의 관계")
plt.xlabel("성별")
plt.ylabel("운임")
# 그래프 출력
plt.show()
2. Seaborn 패키지
- Seaborn은 Matplotlib를 기반으로 한 파이썬의 시각화 라이브러리로, Matplotlib보다 더 아름답고 정교한 시각화를 제공하며 데이터를 탐색하고 이해하는 데 유용한 다양한 기능을 제공. Seaborn은 Matplotlib의 기능을 보완하며 통계적 그래픽스를 그리는 데 특히 유용하다.
- Heatmap
titanic_numeric = titanic[['Pclass', 'Age', 'SibSp', 'Parch', 'Fare', 'Survived']]
# seaborn 패키지의 heatmap
sns.heatmap(titanic_numeric.corr(), annot=True, cmap='coolwarm')
plt.title('Titanic Correlation Heatmap')
plt.show()
- Bar plot / Box plot / Violin plot
fig, ax = plt.subplots(2,2, figsize = (12,10))
# seaborn 패키지의 bar plot 가로 형태
sns.barplot(x='Fare', y='Sex', data=titanic, hue = 'Survived', ax = ax[0, 0], orient = 'h')
ax[0, 0].set_title('Sex 에 따른 운임료 차이')
# seaborn 패키지의 bar plot 세로 형태
sns.barplot(x='Pclass', y='Fare', data=titanic, hue = 'Survived', ax = ax[0, 1], palette = 'Blues')
ax[0, 1].set_title('Pclass 에 따른 운임료 차이')
# seaborn 패키지의 box plot
sns.boxplot(x='Embarked', y='Age', data=titanic, hue = 'Survived', ax = ax[1, 0], palette = 'Oranges')
ax[1, 0].set_title('Embarked 에 따른 나이 차이')
# seaborn 패키지의 violin plot
sns.violinplot(x='Sex', y='SibSp', data=titanic, hue = 'Survived', ax = ax[1, 1], palette = 'pastel')
ax[1, 1].set_title('Sex 에 따른 SibSp 차이')
plt.show()
- Pair plot
# seaborn 패키지의 pair plot
sns.pairplot(titanic)
plt.title('Example Pairplot')
plt.show()
- Hist plot / Kde plot / Dist plot
fig, ax = plt.subplots(2,2, figsize = (12,10))
# seaborn 패키지의 histplot 밀도 선 제거
sns.histplot(titanic.Age, ax = ax[0, 0], kde = False, bins = 25, color = 'skyblue')
ax[0, 0].set_title('Age 분포 bins = 25')
# seaborn 패키지의 histplot 밀도 선 표시
sns.histplot(titanic.Age, ax = ax[0, 1], kde = True, bins = 5, color = 'magenta')
ax[0, 1].set_title('Age 분포 bins = 5')
# seaborn 패키지의 kde plot
sns.kdeplot(titanic.Fare, ax = ax[1, 0], color = 'black')
ax[1, 0].set_title('Fare 분포')
# seaborn 패키지의 dist plot
sns.distplot(titanic.SibSp, ax = ax[1, 1], color = 'orange')
ax[1, 1].set_title('SibSp 분포')
plt.show()
- Seaborn 패키지의 ColorMap
728x90
'Deep Learning' 카테고리의 다른 글
[딥러닝] 밑바닥부터 시작하는 딥러닝 공부 3-2 : 행렬 곱연산과 신경망 구현 (2) | 2024.02.11 |
---|---|
[딥러닝] 밑바닥부터 시작하는 딥러닝 공부 3-1 : 신경망과 활성화 함수 (1) | 2024.01.31 |
[딥러닝] 밑바닥부터 시작하는 딥러닝 공부 2-2 : 퍼셉트론의 한계 및 다중 퍼셉트론 (0) | 2024.01.24 |
[딥러닝] 밑바닥부터 시작하는 딥러닝 공부 2-1 : 퍼셉트론이란? (0) | 2024.01.19 |
[딥러닝] 밑바닥부터 시작하는 딥러닝 공부 1-1 : 헬로 파이썬 (0) | 2024.01.01 |