Python/데이터 분석

데이터 분석 matplotlib, seaborn 시각화

dev-u 2024. 1. 30. 18:38

데이터 분석 관계 분석, 결론 도출을 위한 시각화 방법으로 matplolib, seaborn을 사용해보겠습니다

 

 

1. 패키지 설치

pip install matplotlib
pip install seaborn

 

 

 

 

 

2. 기본 사용법

from matplotlib import pyplot as plt

x = np.arange( 0, 12, 0.01 )
y = np.sin(x)

plt.figure( figsize=(10, 6) )

plt.plot( x, y,  label='sin wave')
plt.plot( x, np.cos(x), label='cos wave' )

numpy의 np.sin을 통해 0~12의 sin값을 예시 그래프 값으로 사용한 차트입니다

 

 

 

3. seaborn boxplot

import seaborn as sns

plt.figure( figsize=(10,6) )
sns.boxplot( x )
plt.show()

파란 박스 구간을 통해 데이터의 중간값들은 17 주변으로 확인되고 대부분 14 ~ 22 사이에 있음을 알 수있다

최대치는 52정도이고 40 이상의 데이터는 많이 없음을 알수있다

 

데이터 결론 도출로는 14 ~ 22의 데이터가 많이 사용되므로 중점적으로 해당 데이터는 가격대로 해당 층의 니즈를 공략해야한다는 결론이 나올수있다

 

 

 

4. seaborn swarmplot

plt.figure( figsize=(10,6) )
sns.boxplot( x='day', y='total_bill', data=tips, palette='Set3' ) 
sns.swarmplot( x='day', y='total_bill', data=tips, color='0.5')
plt.show()

day는 요일로 목금토일을 설정했으며 데이터를 통해 금요일에는 손님이 많이 없으며 주말에 조금 더 높은 가격대를 지출함을 알 수 있다

 

 

 

 

5. seaborn Implot

plt.figure( figsize=(10,5) )
sns.Implot( x='total_bill', y='tip', data=tips, size=10 )
plt.show()

Implot은 컬럼과의 관계 분석을 시각화한 차트로 total_bill 매출과 tip 팁의 관계를 도출한다

 

x로 설정한 매출과 산포도로 측정된 tip과의 관계차트이다

 

x, y 데이터가 얼마나 떨어져 있나와 파란색 영역을 통해 표준편차를 볼 수 있습니다

 

 

 

 

6. seaborn heatmap

plt.figure( figsize=(10,10) )
sns.heatmap(df, annot=True, fmt='d'  )
plt.show()

표는 x year, y month로 연도별 월 고객수를 시각화 한것으로 색이 밝아질수록 고객이 많음을 뜻합니다

 

차트에서는 연도가 지나갈수록 고객이 많아지고 여름에 가장 고객이 많음으로 여름장사에 집중됨을 알 수 있습니다

 

 

 

7. seaborn pairplot

sns.pairplot( iris, hue='species', x_vars=['sepal_width', 'sepal_length'],  y_vars=['petal_width', 'petal_length'])
plt.show()

산포 행렬 시각화 방법으로 데이터의 군집을 확인할 수 있습니다

 

군집데이터의 사용 능력치는 딥러닝에서 빛을 바라기에 활용 방법을 많이 익혀두는게 좋습니다 저 또한 군집데이터에 대한 이해도를 꾸준히 높이고 있습니다

 

 

 

 

8. seaborn 다중 histogram

for spec in iris.species.unique():  
  spec_df = iris[ iris.species == spec ]
  print( spec, spec_df.shape )
  spec_df[ 'petal_width' ].plot( kind='hist', alpha=0.4, label=spec)

plt.legend()
plt.show()

데이터의 분포를 확인하기 좋은 시각화 방법으로 Implot과 heatmap, histogram 시각화를 가장 많이 사용하게 되는것 같습니다