본문 바로가기
Python/Matplotlib

[Python] Matplotlib 두 변수 간의 상관 관계를 나타내는 차트 그리는 법, 상관계수 확인하는 법 Scatter(), regplot(), pairplot(), corr()

by dong_su 2023. 11. 20.

배기량 displ(컬럼)과 연비 comb(컬럼)의 관계를 파악하고 싶다.
=> 비례, 반비례, 관계없음 이냐?

 

순서)
1. 상관분석 : 상관계수를 확인한다.
2. 차트로 확인한다.

 

상관계수란)

변수들간의 관련성을 의미한다. -1 ~ 1 사이의 숫자(수치), 관련 없으면 0 양수 일 경우 밀접해 있을수록 증가한다.

numeric_only = True는 숫자 데이터만 이용한다는 뜻

 

-> displ과 comb의 상관계수 값이 마이너스이기 때문에 우하향 그래프가 나올 것이다.

 

차트 1 : plt의 scatter() 이용

plt.scatter(data=df, x="displ", y="comb")
plt.title("Displ Vs Comb")
plt.xlabel("Displacement(L)")
plt.ylabel("Combined Fuel Eff (mpg)")
plt.show()

배기량이 클수록 연비가 안좋다고 나온다.

plt.scatter(data=df, x="displ", y="comb")

-> data = 차트화 할 데이터 (DataFrame 이어야 함), x, y = x축, y축에 표시할 데이터


 

차트 2 : seaborn의 regplot() 이용

sb.regplot(data=df, x="displ", y="comb")
plt.show()

sb.regplot(data=df, x="displ", y="comb")

-> data = 차트화 할 데이터 (DataFrame 이어야 함), x, y = x축, y축에 표시할 데이터

-> 위 scatter와 차이점으로는 선이 하나 그어진다.


 

차트 3 : seaborn의 pairplot() 이용

sb.pairplot(data=df, vars=["displ","comb"])
plt.show()

sb.pairplot(data=df, vars =["displ","comb"])

-> data = 차트화 할 데이터 (DataFrame 이어야 함), vars = 차트화 시킬 모든 변수

-> DataFrame의 조건에 맞는 변수들 간의 산점도와 히스토그램을 한눈에 보여주는 차트를 생성한다.

 


plt.scatter() , sb.regplot() , sb.pairplot()의 공통점과 차이점

 

공통점) 셋 모두 데이터 시각화를 위한(변수들간의 상관관계를 시각화하는) 도구이다.

 

차이점)

plt.scatter() : 두 변수 간의 산점도를 그려 변수 간의 관계를 시각화 한다.

 

sb.regplot() :  두 변수 간의 산점도와 함께 선형 회귀선을 추가하여 변수 간의 선형 관계를 시각화 하고 주로 선형 회귀 모델을 시각화하는데에 사용된다.

 

sb.pairplot() : 데이터프레임의 모든 변수 간의 산점도와 히스토그램을 동시에 생성하여 다변량 데이터의 전반적인 구조를 확인한다.

 

요약)

scatter는 두 변수 간의 간단한 산점도

regplot은 두 변수 간의 산점도 + 회귀선

pairplot은 데이터프레임의 모든 변수에 대한 산점도 + 히스토그램