코야온니의 티스토리 :)

3-4. 파이썬 - 시각화 라이브러리 ( Seaborn, Matplotlib, Pyplot ) 본문

데이터 분석 부트 캠프/기타 정리

3-4. 파이썬 - 시각화 라이브러리 ( Seaborn, Matplotlib, Pyplot )

이-다은 2023. 7. 9. 18:21

시각화 라이브러리

1. Seaborn   

matplotlib을 기반으로 matplotlib의 개념을 확장한 통계적 데이터 시각화 라이브러리

  • numpy, pandas 등 파이썬 라이브러리의 시각화를 중점 + DataFrame 직접적 지원 →  matplotlib보다 편하게 데이터 분석 시각화 가능
  • 다양한 기본 plot (lineplot, boxplot, jointplot, pairplot) → 빠른 통계 분석 가능 ( 특히, EDA )

2. matplotlib   

MATLAB의 기능 → 파이썬

  • 파이썬의 시각화 라이브러리
  • figure에 component (위의 파란 글씨) 추가하여 그래프 완성
  • pyplot 이용 (빠르게) 또는 OOP-style (데테일하게) 이용

3. Pyplot

장점: 깔끔함, 코드에 있는 값들 바로 사용 가능

단점: 엑셀 그래프 대비 수정하기 어려움

 

# 불러오는 방법

import matplotlib.pyplot as plt
or
import matplotlib as mpl

# 실행 방법

plt.figure()  
plt.plot() or plt.bar()   
plt.show()  

 

# 실제 파이썬 구현 예시

#1. 막대그래프

x=["americano", 'cafe latte', 'vanilla latte', 'cold brew', 'flat white']
y=[1463, 301, 866, 905, 274]

plt.figure(figsize=(8, 6))    # ()사이에서 옵션 조정 가능함

# 모든 component는 plt.figure 이후, plt.show 이전에 추가해야 됨
  plt.grid(alpha=0.3, color='black', linewidth=0.5)    # 격자 추가
  plt. title('Coffe Sales', fontsize=14, loc='left')    # 차트 제목 추가
  plt.xlabel('Menu')    # x축 제목 추가
  plt.ylabel('Sales')    # y축 제목 추가
  plt.ylim(0,2000)    # 최소, 최대값 범위 추가
  plt.yticks([num for num in range(0,1600,200)])    # 눈금 추가

plt.bar(x,y, color='lightcoral', label='Sales') 
plt.plot([100,200,400,800,1600], label='Average')
plt.legend(loc='best')    # ( label=' ' )와 같이 사용하여 라벨 표시

plt.show()

 

#2. Scatterplot 

import numpy as np

x=np.random.random(100)
y=np.random.random(100)

plt.figure(figsize=(6,6))
plt.scatter(x,y, color='orange', marker='<', s=15, alpha=0.3)

plt.show()

 

#3. Subplot

plt.figure()
         
plt.subplot(1,2,1) 
plt.plot([0.1,0.3,0.5])

plt.subplot(3,2,2)
plt.plot([0.6,0.3,0.4])

plt.subplot(3,2,4)
plt.bar([1,2,3],[3,2,1])

plt.subplot(3,2,6)
plt.scatter([1,2,3,4,5],[5,3,4,2,4])

plt.show()

 

#4. DataFrame으로 plotting

각각 df.plot  /  df의 결과
import pandas as pd
x=["americano", 'cafe latte', 'vanilla latte', 'cold brew', 'flat white']
y=[1463, 301, 866, 905, 274]
df=pd.DataFrame({"Menu":x,"Count":y})

df.plot(kind='barh', x='Menu', y='Count')
or df