seaborn을 사용하기 위해선 설치하는 작업이 선행되어야 한다.
!pip install seaborn
명령 프롬프트에서 실행하는 것과 동일한 효과
가 발생한다.import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
titanic = pd.read_csv('titanic_train.csv')
# 확인
titanic.tail(2)
데이터 출처:https://www.kaggle.com/c/titanic
sns.scatterplot(x='Age', y='Fare', data=titanic)
plt.show()
sns.scatterplot(x='Age', y='Fare', data=titanic, hue='Survived')
plt.show()
sns.histplot(data=titanic, x='Age', bins=16)
plt.show()
sns.histplot(data=titanic, x='Age', bins=16, hue='Survived')
plt.show()
확률밀도함수
그래프로 kdeplot
이라고도 한다.sns.kdeplot(data=titanic, x='Age')
plt.show()
sns.kdeplot(data=titanic, x='Age', hue='Survived')
plt.show()
sns.boxplot(data=titanic, y='Age')
plt.show()
sns.boxplot(data=titanic, x='Survived', y='Age')
# 또는
# sns.boxplot(x=titanic['Survived'], y=titanic['Age'])
plt.show()
<다음 버전에서 사라질 코드>
라는 경고문을 볼 수 있다.sns.histplot(data=titanic, x='Age', bins=16, kde=True)
plt.show()
sns.histplot(data=titanic, x='Age', bins=16, hue='Survived', kde=True)
plt.show()
sns.jointplot(x='Age', y='Fare', data=titanic)
plt.show()
sns.jointplot(x='Age', y='Fare', data=titanic, hue='Survived')
plt.show()
sns.pairplot(titanic)
plt.show()
sns.pairplot(titanic, hue = 'Survived')
plt.show()
집계를 알아서
해주고 barplot을 그려준다.반드시 집계 후
barplot을 그려야한다.embarked = titanic['Embarked'].value_counts() # 반드시 집계 먼저
plt.bar(embarked.index, embarked.values)
plt.show()
embarked = titanic['Embarked'].value_counts() # 반드시 집계 먼저
plt.barh(embarked.index, embarked.values)
plt.show()
sns.countplot(x='Embarked', data=titanic)
plt.show()
sns.countplot(x='Embarked', data=titanic, hue = 'Survived')
plt.show()
sns.countplot(x='Pclass', data=titanic, palette = sns.color_palette("pastel"),
order = titanic['Pclass'].value_counts().index)
plt.show()
ax = sns.countplot(x='Pclass', data=titanic, palette = sns.color_palette("pastel"),
order = titanic['Pclass'].value_counts().index)
# countplot에 값 표시
for p in ax.patches:
height = p.get_height()
ax.text(p.get_x() + p.get_width() / 2., height + 30, height, ha = 'center', size = 12)
ax.set_ylim(0, 600)
plt.show()
error bar
라고 하며, 신뢰구간을 의미한다.sns.barplot(x='Embarked', y='Fare', data = titanic)
plt.show()
corr()
을 통한 숫자형 feature들 간의 상관관계
를 그릴 수 있다.confusion matrix
시각화에도 쓰인다.cf) https://seaborn.pydata.org/generated/seaborn.heatmap.html
여기서는 두 범주를 집계한 결과를 그려본다.
- cf) 여태까지의 경험상, 거의 대부분 heatmap은 1번과 3번을 위해 사용되었다.
집계(groupby)와 피봇(pivot)을 먼저 만든다.
여러 범주를 갖는 변수 비교 시 유용하다.
temp1 = titanic.groupby(['Embarked','Pclass'], as_index = False)['PassengerId'].count()
temp1
temp1 = titanic.groupby(['Embarked','Pclass'], as_index = False)['PassengerId'].count()
temp2 = temp1.pivot('Embarked','Pclass', 'PassengerId') # Embarked별(행) Pclass별(열) PassengerId
print(temp2)
sns.heatmap(temp2, annot = True) # annot = False할 경우 숫자가 안 뜸
plt.show()
fit_reg 속성은 True가 디폴트이다.
이를 False로 하고 hue 속성을 안 써줄 경우, plt.scatter()로 그리는 산점도와 동일하다.
- fit_reg
는 선형회귀 적합선
을 보여주는 속성이다.
cf) https://seaborn.pydata.org/generated/seaborn.lmplot.html
fit_reg=False일 경우
sns.lmplot(x='Age', y='Fare', data=titanic, fit_reg=False, hue='Survived')
plt.show()
sns.lmplot(x='Age', y='Fare', data=titanic, hue='Survived')
plt.show()