[이론+실습편] Python을 활용한 AI 모델링 - (4) 데이터 시각화

eunchae-04·2025년 1월 25일

AICE 자격증

목록 보기
6/10

학습 내용

  • Matplotlib 라이브러리
  • Matplotlib 활용한 차트 그리기
  • Seaborn 라이브러리
  • Seaborn 활용한 차트 그리기

학습 목표

  • 데이터를 시각화하여 데이터의 분포나 특성을 확인할 수 있다.

1. Matplotlib 라이브러리

Matplotlib

  • 파이썬에서 데이터를 차트나 플롯(Plot)으로 그려주는 가장 많이 사용되는 테이터 시각화(Data Visualization) 패키지

  • 라인 Plot, 바차트, 파이차트, 히스토그램, Box Plot, Scatter Plot

그림 의뢰와 차트 그리기 비교

  • 그림 의뢰
    1) 어디에 쓸 그림인지에 따라 크기와 그림 수 결정
    2) 원하는 그림의 주제,종류,색감 등 그림의 세부 내용을 결정
    3) 요청한 그림이 완성되면 그림을 보여달라고 요청함

  • 차트 그리기
    1) 메소드: plt.figure()
    동작: ㅏ시각화 그림을 표시할 영역 지정
    2) 메소드: plt.plot()
    동작: 시각화 차트 및 값 지정
    3) 메소드: plt.show()
    동작: 시각화 출력


2. Matplotlib 활용한 차트 그리기

선 그래프(Line Plot) 그리기

plt.plot(data)

  • 수치의 변화를 선으로 이어서 그려줌
  • 시간에 따른 데이터의 변화 추세를 볼 떄 사용

산점도 그리기

plt.scatter(x,y)

  • 키와 몸무게 같은 두 값 간의 관계를 표현
  • 두 값이 양의 상관관계인지 음의 상관관계인지를 파악할 수 있음
  • X와 Y 값을 지정해야 함

히스토그램 그리기

plt.hist(x)

  • 수치형 데이터의 분포를 나타냄
  • 빈도, 빈도밀도, 확률 등의 분포를 그릴 떄 사용
  • 구간 값(bins)을 정해주지 않으면 10개 구간으로 나누어 그래프를 그려줌

박스 그래프 그리기

plt.boxplot(x)

  • 수치적 자료를 표현하는 그래프
  • 수치적 자료로부터 얻어낸 통계량인 5가지 요약 수치를 가지고 그래프를 만듦
    5가지 요약 수치 → 최솟값, 제 1사분위값, 제 2사분위값, 제 3사분위값, 최댓값

막대 그래프 그리기

plt.bar(x,height)

  • 범주형 데이터의 수치를 요약해서 보여줌
  • 일반적으로 가로, 세로, 누적, 그룹화 된 막대 그래프 등을 사용함

3. Seaborn 라이브러리

Seaborn

  • Matplotlib을 기반으로 다양한 색상 테마와 통계용 차트 등의 기능을 추가한 시각화 패키지
    → 기본적인 시각화 기능은 Matplotlib 패키지에 의존

Matplotlib vs Seaborn

  • Matplotlib과 Seaborn 중 어떤 것을 사용할 것인가?
    → 표현하고자 하려는 것이 무엇인지를 정확히 확인해서 더 적합한 패키지를 사용

  • Matplotlib
    기능: 기본적인 시각적 개체를 만드는데 사용
    표시: 기본적이고 단순한 디스플레이
    사용방법: Numpy와 Pandas만으로 다양한 시각화 가능
    복잡성: 복잡하고 긴 구문
    다중성: 여러 개의 시각화를 한 번에 열 수 있음
    유연성: 강력하고 유연하며 사용자 기능 정의가 쉬움

  • Seaborn
    기능: 주로 통계 그래프를 만드는 데 사용
    표시: 시각적인 요소가 가미된 디스플레이
    사용방법: Numpy와 Pandas뿐만 아니라 Matplotlib도 사용해야 함
    복잡성: 쉽고 간단한 구문
    다중성: 메모리 부족문제로 다중 시각화하는데 실패할 수 있음
    유연성: 비교적 덜 유연하고 사용자 기능 정의가 어려움


4. Seaborn 활용한 차트 그리기

Scatter Plot

sns.scatterplot(x,y)

  • 두값이 어떤 관계에 있는지 분포를 확인할 수 있음
  • X와 Y 값을 지정해야 함

Cat Plot

sns.catplot(x,y,col or row)

  • 색상과 열 또는 행 등을 동시에 사용하여 3개 이상의 카테고리 값에 의한 분포 변화를 보여줌

Lm Plot

sms.lmplot(x,y)

  • 산점도에 회귀선을 그려주어 하나의 값에 따라 다른 값이 어떻게 변하는지를 예측할 수 있음

Count Plot

sns.Countplot(x)

  • 항목 별 갯수를 확인할 떄 사용함
    ※ 히스토그램과의 차이
    히스토그램: 연속형 변수만 가능
    Countplot: 범주형 변수에도 적용 가능

Box Plot

sns.boxplot(x,y)

  • 수치적 자료를 표현하는 그래프
  • 수치적 자료로부터 얻어낸 통계량인 5가지 요약 수치를 가지고 그래프를 만듦
    5가지 요약 수치 → 최솟값, 제 1사분위값, 제 2사분위값, 제 3사분위값, 최댓값

Violin Plot

sns.violinplot(x,y)

  • Boxplot과 모양은 비슷하지만 밀집도를 함께 볼 수 있어 데이터 탐색에 유용하게 사용할 수 있음

Joint Plot

sns.joinplot(x,y)

  • 산점도와 countplot을 한번에 보영주는 그래프
  • 데이터의 분포와 상관관계를 한번에 볼 수 있어 데이터 탐색에 장점이 있음

Heat Map

sns.heatmap(data)

  • 데이터의 배열을 생상으로 표현해주는 그래프
  • 두 개의 카테고리 값에 대한 값 변화를 한 눈에 알기 쉽기 때문에 두 값 또는 각 Feature간의 상관관계를 나타낼 떄 주로 사용함

0개의 댓글