Scatter(스캐터)
스캐터 플롯은 데이터의 분포를 시각적으로 파악할 수 있게 해주며, 두 변수 간의 관계를 이해하는 데 도움이 된다
예를 들어, 두 변수 간의 양의 상관 관계가 있을 때, 데이터 포인트들은 대체로 오른쪽 위로 향하는 경향이 있다.
반대로 음의 상관 관계가 있을 때는 대체로 왼쪽 위로 향하는 경향이 있다.
또한 상관관계가 강할경우 데이터들이 모여있고, 상관관계가 약할 경우 데이터들이 퍼져있다
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sb
# 배기량(displ)과 연비(comb)의 관계를 눈으로 확인해보고싶다
df
displ | pv2 | pv4 | city | UCity | highway | UHighway | comb | |
0 | 3.8 | 79 | 0 | 16.4596 | 20.2988 | 22.5568 | 30.1798 | 18.7389 |
1 | 2.0 | 94 | 0 | 21.8706 | 26.9770 | 31.0367 | 42.4936 | 25.2227 |
2 | 3.6 | 94 | 0 | 17.4935 | 21.2000 | 26.5716 | 35.1000 | 20.6716 |
3 | 3.6 | 94 | 0 | 16.9415 | 20.5000 | 25.2190 | 33.5000 | 19.8774 |
4 | 2.4 | 0 | 95 | 24.7726 | 31.9796 | 35.5340 | 51.8816 | 28.6813 |
... | ... | ... | ... | ... | ... | ... | ... | ... |
3924 | 1.8 | 0 | 0 | 55.2206 | 78.8197 | 53.0000 | 73.6525 | 54.4329 |
3925 | 2.0 | 0 | 106 | 39.0000 | 55.9000 | 44.3066 | 64.0000 | 41.0000 |
3926 | 2.0 | 0 | 106 | 40.0000 | 56.0000 | 46.0000 | 64.0000 | 42.0000 |
3927 | 3.4 | 99 | 0 | 19.2200 | 24.2000 | 30.2863 | 43.4000 | 23.0021 |
3928 | 3.4 | 99 | 0 | 18.0431 | 22.6000 | 27.0000 | 39.3000 | 21.3945 |
plt.figure()
plt.scatter(data=df, x = 'displ', y= 'comb')
plt.title('Displ Vs Comb')
plt.xlabel('Displacement')
plt.ylabel('Combined Fuel Eff (mpg)')
plt.show()
스캐터 차트를 통해 왼쪽 위로 향하는 것을 보아, 음의 상관관계가 있다는 것을 알 수가 있다.
# 상관관계 분석
df[['displ','comb']].corr()
displ = displ, comb=comb는 1이 나오는 것은 의미없는 분석이고
-0.758397이 나오는 것을 통해 displ과 comb는 음의 상관관계라는 것을 알 수 있다.
# 더 많은 상관관계 데이터를 보고싶다면?
df.corr(numeric_only=True)
# 스캐터 차트에 회귀직선을 추가하고싶다면?
sb.regplot(data=df, x = 'displ', y= 'comb')
plt.title('Displ Vs Comb')
plt.xlabel('Displacement')
plt.ylabel('Combined Fuel Eff (mpg)')
plt.show()
scatter 대신 regplot을 사용하면 된다
# 쌍둥이 곡선을 그리고 싶다면?
sb.pairplot(data= df, vars= ['displ','comb','co2'])
plt.show()
scatter 대신 pairplot을 사용하면 된다
HeatMap(히트맵)
스캐터플롯은, 겹쳐있는 점이 얼마나 밀도있는지를 자세히 알지 못한다.
이러한 데이터의 "밀도"는 HeatMap(히트맵)을 통해 알아볼 수 있다.
plt.hist2d(data= df, x='displ', y='comb', cmin=0.5, cmap = 'viridis_r', bins=20)
#cmin은 없는 데이터를 하얀색으로 표현해준다
plt.colorbar()
plt.show()
'Python > Matplotlib' 카테고리의 다른 글
PIE, BAR, LINE, AREA 차트를 스트림릿(streamlit)에 표현하기 (0) | 2024.04.26 |
---|---|
scatter, histogram 등의 차트를 스트림릿(streamlit)으로 표현하기 (0) | 2024.04.26 |
Matplotlib) Histograms(히스토그램) 차트 그리기 (0) | 2024.04.15 |
Matplotlib) Pie (파이) 차트 그리기 (0) | 2024.04.15 |
Matplotlib) Bar chart : countplot 차트 그리기 (0) | 2024.04.15 |