시간의 흐름, 순서에 따른 관측값의 변화, 추세를 시각화 하는데 유용한 선 그래프
import pandas as pd
import matplotlib.pyplot as plt
data = '/content/drive/MyDrive/Colab Notebooks/DataSet/Iris/Iris.csv'
df = pd.read_csv(data)
df = df.drop(['Id'], axis=1)
df.plot.line(title='Iris Dataset')
plt.show()
df['SepalLengthCm'].plot();
📌 Lineplot 참고:
데이터의 분포를 확인 할 수 있다. 이를 토대로 어느 부분에 자료가 많이 집중되어 있는지와 이상치를 살펴볼 수 있고, 데이터의 좌우 대칭성을 설명할 수 있다. 주의할 점은 계급 폭을 다르게 하면 해석이 달라 질 수 있다는 점이다.
plt.hist(df['SepalWidthCm'], bins=10)
두 변수 간의 방향, 트렌드, 밀집도와 이상치를 확인 할 수 있다. 또한, 명목형 변수의 군집별로 색을 다르게 하여 구분할 수도 있다.
groups = df.groupby('Species')
fig, ax = plt.subplots()
for name, group in groups:
ax.plot(group.PetalLengthCm,
group.PetalWidthCm,
marker='o',
linestyle='',
label=name)
ax.legend(fontsize=12, loc='upper left')
plt.title('Scatter Plot of iris by matplotlib', fontsize=20)
plt.xlabel('Petal Length', fontsize=14)
plt.ylabel('Petal Width', fontsize=14)
plt.show()
하나의 연속형 변수에 대해서 분포 형태, 퍼짐정도, 이상치 여부등을 시각화하고, 하나의 그룹 혹은 여러개의 그룹 간 비교하는데 유용한 상자그림이다.
연속형 변수에 대해서 최소값(min), 제 1사분위수(Q1), 중앙값(Q2, median), 제 3사분위수(Q3), 최대값(max) 의 요약통계량을 계산하는 것에서 시작한다.
import seaborn as sns
import matplotlib.pyplot as plt
## boxplot
figure = plt.figure(figsize=(10, 8))
plt.rcParams.update({'font.size': 22})
plt.ylim(0, 10)
sns.boxplot(x="Species", y="SepalLengthCm", data=df, showmeans=True,
meanprops={"marker":"s","markerfacecolor":"black", "markeredgecolor":"black"})
📌 boxplot 참고:
상관계수를 통하여 두 속성 간의 연관성을 나타낼 수 있다. -1에 가까우면 음의 상관관계, 0이면 상관관계가 없고, 1에 가까울수록 양의 상관관계를 나타낸다.
plt.figure(figsize=(7, 4))
sns.heatmap(df.corr(), annot=True)
데이터의 모든 컬럼들의 변수의 상관관계를 histogram과 Scatterplot으로 출력한다. 전체 데이터의 상관관계를 한눈에 볼 수 있다.
sns.pairplot(df, hue='Species')
plt.show()
📌 참고: