210707 FUNDAMENTAL 8. Visualization

문소정·2021년 7월 7일
0

AIFFEL

목록 보기
7/66

시각화 라이브러리 : Pandas, Matplotlib, Seaborn 등

라이브러리 설치 명령어

> pip install matplotlib
> pip install seaborn

설치된 라이브러리 확인 명령어

> pip list | grep matplotlib
> pip list | grep seaborn

1. 그래프 그리기

%matplotlib inline: IPython에서 사용하는 매직 메소드이자 Rich output에 대한 표현 방식이다.

  • IPython : 주피터 노트북의 파이썬 커널 이름
  • Rich output : 그래프와 같은 그림, 소리, 애니메이션 과같은 결과물

1) 막대 그래프

  1. .figure() : figure 객체 선언
    fig = plt.figure()만 입력하면 객체만 생성되고 그림으로 나타나지 않음
    • fig = plt.figure(figsize = (5,2)) : figsize parameter로 그래프의 사이즈를 정할 수 있음
  1. .add_subplot(행, 열, 그리프위치) : 축을 그림
    ax1 = fig.add_subplot(1,1,2) # nrows, ncols, index
  1. .bar(x,y) : x, y 인자의 데이터를 넣어줌
    ax1.bar(x,y)

2) 선 그래프

Pandas의 Series는 선 그래프를 그리기에 최적의 자료구조, 자체적인 선 그래프 그리기 기능을 제공한다.

  • price = data['Close']가 바로 Pandas의 Series
  • price.plot(ax=ax, style='black') : Pandas의 plot을 사용하면서, matplotlib에서 정의한 subplot 공간 ax를 사용
  • plt.xlim(), plt.ylim() : x, y 좌표축의 적당한 범위를 설정
  • annotate() : 그래프 안에 추가적으로 글자나 화살표 등 주석을 그림
  • grid() : 그리드(격자눈금)를 추가

3) plot 사용법 상세

  1. plt.plot() 로 그래프 그리기
    figure() : 객체 생성
    add_subplot() : 서브 플롯 생성 & plot 그리기
    => 한번에 plt.plot()로 그래프를 그리면 matplotlib은 가장 최근의 figure객체와 그 서브플롯을 그립니다.
    plt.plot()의 인자로 x데이터, y데이터, 마커옵션, 색상 등의 인자를 이용
    plt.subplot(행, 열, 그래프 위치) : 서브 플롯 추가하기
    * plt.xlabel, plt.ylabel : 그래프의 X, Y축에 대한 레이블을 표시

  2. linestyle, marker, color 옵션

  3. pandas.plot() 메소드 인자

    • label: 그래프의 범례이름
    • ax: 그래프를 그릴 matplotlib의 서브플롯 객체
    • style: matplotlib에 전달할 'ko--'같은 스타일의 문자열
    • alpha: 투명도 (0 ~1)
    • kind: 그래프의 종류: line, bar, barh, kde
    • logy: Y축에 대한 로그스케일
    • use_index: 객체의 색인을 눈금 이름으로 사용할지의 여부
    • rot: 눈금 이름을 로테이션(0 ~ 360)
    • xticks, yticks: x축, y축으로 사용할 값
    • xlim, ylim: x축, y축 한계
    • grid: 축의 그리드 표시할 지 여부
  4. pandas의 data가 DataFrame 일 때 plot 메서드 인자

    • subplots: 각 DataFrame의 칼럼을 독립된 서브플롯에 그린다.
    • sharex: subplots=True면 같은 X축을 공유하고 눈금과 한계를 연결
    • sharey: subplots=True면 같은 Y축을 공유
    • figsize: 그래프의 크기, 튜플로 지정
    • title: 그래프의 제목을 문자열로 지정
    • sort_columns: 칼럼을 알파벳 순서로 그린다.

2. 그래프 4대천왕

📌 막대그래프(bar graph), 꺾은선 그래프(line graph), 산점도(scatter plot), 히스토그램(histogram)

  1. 데이터 불러오기

    • Seaborn의 load_dataset() 메소드를 이용하면 API를 통해 손쉽게 유명한 예제 데이터를 다운로드 받을 수 있다.
  2. 데이터 살펴보기(EDA)

    • .head(), .shape(), .describe(), .info()
    • 범주형(category) 데이터 탐색 ⇨ 막대(bar)그래프 사용
    • 수치형 데이터 판별 ⇨ 산점도(scatter plot), 선(line)그래프, 히스토그램 사용
      • sns.scatterplot() 산점도 : 두 변수의 상관관계를 평면 점으로 표현
      • 히스토그램 : 도수분포표를 그래프로 나타낸 것

정규뷴포(가우시안)
KDE(Kernel Density Estimate) 커널 밀도 추정 : https://darkpgmr.tistory.com/147#:~:text=Kernel%20Density%20Estimation%20(%EC%BB%A4%EB%84%90%20%EB%B0%80%EB%8F%84%20%EC%B6%94%EC%A0%95)%20%EB%B0%A9%EB%B2%95%EC%9D%80%20non%2D,%EC%9D%84%20%EA%B0%9C%EC%84%A0%ED%95%9C%20%EB%B0%A9%EB%B2%95%EC%9D%B4%EB%8B%A4.

3. 시계열 데이터 시각화

4. Heatmap

0개의 댓글