📍 seaborn
: 다양한 형태의 그래프를 통해서 데이터 시각화를 할 수 있는 라이브러리
In [1]:
import seaborn as sns
import matplotlib.pyplot as plt
✔️ 한글폰트 설정
In [2]:
import matplotlib
matplotlib.rcParams['font.family'] = 'Malgun Gothic' # Windows
matplotlib.rcParams['font.family'] = 'AppleGothic' # Mac
matplotlib.rcParams['axes.unicode_minus']=False # 한글 폰트 사용 시, 마이너스 글자가 깨지는 현상 해결
✅ 히스토그램
: sns.histplot(value, bins, kde=True/False, height=height, aspect=aspect)
In [3]:
import pandas as pd
titanic_df = pd.read_csv('titanic_train.csv')
titanic_df.head()
Out[3]:
In [4]:
plt.figure(figsize=(8, 3))
sns.histplot(titanic_df['Age'], bins=20) # bins 나누는 갯수
plt.show()
In [5]:
sns.histplot(x='Age', data=titanic_df, bins=30, kde=True) # kde : 밀도추정
plt.show()
In [6]:
# figure로 조절이 안될 수 있음
plt.figure(figsize=(8, 4))
sns.displot(x='Age', data=titanic_df, kde=True)
plt.show()
In [7]:
# height, aspect로 조정
sns.displot(titanic_df['Age'], kde=True, height=4, aspect=2)
plt.show()
✔️ matplotlib 히스토그램
: plt.hist(x)
In [8]:
import numpy as np
np.random.seed(0)
x=np.random.randn(1000) #난수 1000개 발생
plt.title('히스토그램')
plt.hist(x)
plt.show()
✅ KDE 플롯
: sns.kdeplot(value)
In [9]:
tips = sns.load_dataset('tips')
tips.head(5)
Out[9]:
In [10]:
sns.kdeplot(x=tips['total_bill'])
plt.show()
✅ 카운트 플롯
: sns.countplot(value)
sns.countplot(x='column', data=df)
In [11]:
sns.countplot(x='Pclass', data=titanic_df)
plt.show()
✅ 바 플롯
: sns.barplot(x, y, hue='colomn', errorbar, estimator)
- errorbar : 오차막대, 신뢰도(95% 이상이 해당 범위)
In [12]:
sns.barplot(x='Pclass', y='Age', data=titanic_df)
plt.show()
In [13]:
sns.barplot(x='Pclass', y='Sex', data=titanic_df) # y에 object 데이터가 올 시 자동으로 수평그래프 출력
plt.show()
In [14]:
sns.barplot(x='Pclass', y='Survived', data=titanic_df, errorbar=None, estimator=sum)
plt.show()
In [15]:
sns.barplot(x='Pclass', y='Survived', hue='Sex', data=titanic_df)
plt.show()
✅ 박스 플롯
: sns.boxplot(x, y, hue='column')
In [16]:
sns.boxplot(x='Pclass', y='Age', data=titanic_df)
plt.show()
In [17]:
sns.boxplot(x='Pclass', y='Age', hue='Sex', data=titanic_df)
plt.show()
✅ swarm 플롯
: sns.swarmplot(x, y)
In [18]:
plt.figure(figsize=(10,6))
sns.boxplot(x='day', y='total_bill', data=tips)
sns.swarmplot(x='day', y='total_bill', data=tips, palette='husl')
plt.show()
✅ 바이올린 플롯
: sns.violinplot(x, y, hue='column')
In [19]:
sns.violinplot(x='Pclass', y='Age', data=titanic_df)
plt.show()
In [20]:
sns.violinplot(x='Pclass', y='Age', hue='Sex', data=titanic_df)
plt.show()
✅ 산점도
: sns.scatterplot(x, y, hue='column', style='column')
In [21]:
sns.scatterplot(x='Age', y='Fare', data=titanic_df)
plt.show()
In [22]:
sns.scatterplot(x='Age', y='Fare', hue='Survived', data=titanic_df)
plt.show()
In [23]:
sns.scatterplot(x='Age', y='Fare', hue='Survived', style='Sex', data=titanic_df)
plt.show()
✅ lm 플롯
: sns.lmplot(x, y, fit_reg=True/False)
- fit_reg : 회귀선
In [24]:
sns.lmplot(x='total_bill', y='tip', data=tips)
plt.show()
In [25]:
sns.lmplot(x='total_bill', y='tip', data=tips, hue='smoker', fit_reg=False)
plt.show()
✅ 상관 히트맵
: sns.heatmap(corr, annot=True/False, fmt='.1f', cbar=True/False)
In [26]:
corr_df = titanic_df.corr(numeric_only=True)
corr_df
Out[26]:
In [27]:
sns.heatmap(corr_df)
plt.show()
In [28]:
sns.heatmap(corr_df, annot=True, fmt='.1f', cbar=True) # annot : 수치 표시
plt.show()
✅ 다중 플롯
: fig, axs = plt.subplots(x, y, figsize=(x, y))
sns.barplot(x, y, hue='column', ax=axs[n])
In [29]:
cat_columns = ['Pclass', 'Sex', 'Embarked']
fig, axs = plt.subplots(nrows=1, ncols=len(cat_columns), figsize=(14, 4))
for index, column in enumerate(cat_columns):
sns.barplot(x=column, y='Survived', data=titanic_df, ax=axs[index])
In [30]:
cont_columns = ['Age', 'Fare']
for column in cont_columns:
fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10, 4))
sns.violinplot(x='Survived', y=column, data=titanic_df, ax=axs[0])
sns.histplot(x=column, data=titanic_df, kde=True, hue='Survived', ax=axs[1])
참고 : 나도코딩 파이썬 코딩 무료 강의 (활용편5) - 데이터 분석 및 시각화, 이 영상 하나로 끝내세요
'Pandas' 카테고리의 다른 글
[Pandas / 시각화] 판다스 folium - map, marker, Choropleth (1) | 2024.01.15 |
---|---|
[Pandas / 시각화] 판다스 시각화 활용편 - 수평막대그래프 양쪽으로 그리기, y축 다르게 다중그래프 그리기 (1) | 2024.01.15 |
[Pandas / 시각화] 판다스 산점도그래프 - scatter (1) | 2024.01.15 |
[Pandas / 시각화] 판다스 원그래프 - pie (1) | 2024.01.15 |
[Pandas / 시각화] 판다스 막대그래프 - bar, barh, 누적막대그래프, 다중막대그래프 (1) | 2024.01.15 |