파이썬 시각화 도구

Heath_Jeong·2021년 3월 6일
0

Ustage Week2 - AI Math

목록 보기
8/9

시각화 도구

우리가 사용하려는 데이터는 어떻게 생겼는지 보여주는 도구.
데이터 시각화를 못하면 데이터 분석 힘듦!

matplotlib

  • pyplot 객체를 사용하여 데이터를 표시
  • pyplot 객체에 그래프들을 쌓은 후 flush(show함수) (보여주고 나면 비움)
  • Graph 는 기본 figure 객체에 생성됨
  • pyplot 객체 사용시 기본 figure 에 그래프가 그려짐
  • plot 은 라인 그래프이므로 쌍 안맞추면 이상하게 그려짐 → X 순서대로 Y 값 적을 것
  • plot 만 해도 그려지긴 함, 그래도 show 쓰자
import matplotlib.pyplot as plt

X = range(100)
Y = range(100)
plt.plot(X,Y)
plt.show()
  • 결과

Figure & Axes

  • 기본 figure 객체 외에 따로 객체를 저장해서 사용 가능
  • subplot 은 grid 구조로 할당 가능
fig = plt.figure() # figure 반환
fig.set_size_inches(10,3) # 크기지정
ax_1 = fig.add_subplot(1,2,1) # 두개의 plot 생성
ax_2 = fig.add_subplot(1,2,2)  # 두개의 plot 생성

ax_1.plot(X_1, Y_1, c="b")  # 첫번째 plot
ax_2.plot(X_2, Y_2, c="g")  # 두번째 plot
plt.show() # show & flush

여러 속성들

  • Set color
    • plot 의 속성으로 c or color 설정 가능, rgb 나 영소문자 심벌 사용가능
X_1 = range(100)
Y_1 = [value for value in X]

X_2 = range(100)
Y_2 = [value + 100 for value in X]

plt.plot(X_1, Y_1, color="#000000")
plt.plot(X_2, Y_2, c="c")

plt.show()

  • Set linestyle
    • ls or linestyle 속성 설정
  • Set title
    • latex 타입의 표현도 가능 (수식 표현 가능)
    • plt.title('tt')
  • Set legend
    • 범례 표시 가능
  • text 나 annotation 도 설정 가능
  • 저장
    • savefigure 사용
    • show (flush) 전에 해줘야 함

scatter

  • 산전도 그리는 함수
  • marker 는 scatter 모양 설정
  • 다 검색해서 쓰면 됨

bar

  • 막대 그래프 그려주는 함수
  • 가로 형태의 hbar 함수도 있음

histogram

  • 분포차트 그려주는 함수
  • hist 함수 사용, bins 속성 개수만큼 칸을 나눔

boxplot

  • 알아둘 필요 있음 (박스플롯 자체 의미도)
    • 데이터에 대한 분포를 박스 형태로 그려줌, 몰린 정도와 범위까지 (아웃라이어도)
  • boxplot 함수 사용

seaborn

  • statistical data visualization (통계적 데이터 시각화)
  • matplotlib 를 더 쉽게 다루도록 도와줌 (matplotlib 의 wrapper)
  • 기존 matplotlib 에 기본 설정을 추가
  • 복잡한 그래프를 간단하게 만들 수 있는 wrapper
  • 간단한 코드 + 예쁜 결과
  • load_dataset 할 때 "tips" 와 "fmri" 많이 씀 (기본 데이터셋)
  • import seaborn as sns 로 함

basic plot

  • lineplot
    • 주 데이터 선과 분포가 위아래로 나옴
    • hue 속성에 카테고리를 넣으면 카테고리 별로 나눠줌
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="darkgrid")
tips = sns.load_dataset("tips")
fmri = sns.load_dataset("fmri")
sns.set_style("whitegrid")
sns.lineplot(x="timepoint", y="signal", data=fmri)

  • scatterplot
    • 기본 scatter 와 거의 동일
    • hue 사용 가능
  • regplot
    • scatterplot 에다가 regression line (선형회귀선) 도 그려줌
  • countplot
    • 카테고리 데이터를 위해 쓰고 카테고리 데이터 개수를 세어줌
  • barplot
    • 막대 그래프 그려줌
  • distplot
    • 데이터의 분포를 그려줌
  • violinplot
    • 바이올린 플롯 (일반적으로 많이 사용), 분포 보기 편함
  • swarmplot
    • 데이터 적을 때 괜찮음, 분포 보기 편함
  • 기타 여러 플롯 많음

참조

  • BoostCamp AI Tech
profile
데이터로 문제를 해결하는 엔지니어를 꿈꿉니다.

0개의 댓글