FUNDAMENTAL | 8-1. Visualization - 그래프 기초

yeonk·2021년 9월 16일
0

aiffel-ai-bootcamp

목록 보기
19/38
post-thumbnail

20210916



1. 시각화


파이썬은 Pandas, Matplotlib, Seaborn 등 여러 가지 시각화 라이브러리를 제공



설치

$ pip install matplotlib 
$ pip install seaborn






그래프 그리기

그래프를 그리는 전반적인 과정 (순서)

  1. fig = plt.figure():

    • figure 객체를 선언해 '도화지를 펼쳐' 줍니다.
  1. ax1 = fig.add_subplot(1,1,1):

    • 축을 그립니다.
  2. ax1.bar(x, y) 축안에 어떤 그래프를 그릴지 메소드를 선택 후 인자로 데이터를 넣기

  3. 그래프 타이틀 축의 레이블 등을 plt의 여러 메소드 grid, xlabel, ylabel 을 이용해서 추가

  4. plt.savefig 메소드를 이용해 저장






그래프 요소별 명칭

출처: AIFFEL FUNDAMENTAL_ 8. 데이터를 한눈에! Visualization






2. 막대 그래프


데이터 정의

1. 모듈 import (matplotlib 사용할 예정)

import matplotlib.pyplot as plt
%matplotlib inline # 매직 메소드 / Rich output에 대한 표현 방식

Rich output: 그래프와 같은 그림, 소리, 애니메이션 과같은 결과물

IPython 매직 명령어 정리

2. 데이터 정의






1. 그림(figure)객체를 만들기

figure(): 도화지(그래프)

2. 하위 그래프를(subplot)을 추가하기

add_subplot(행, 열, 인자 위치): 축 그리기

# 축 그리기

#도화지(그래프) 객체 생성
fig = plt.figure() 

#figure()객체에 add_subplot 메소드를 이용해 축을 그려준다.
ax1 = fig.add_subplot(1,1,1) 






그래프 그리기, 요소 추가

bar(): 막대그래프 그리기

xlabel(): x라벨 추가
ylabel(): y 라벨 추가
title(): 그래프 타이틀 추가

# 그래프 그리기
ax1.bar(X축 데이터,y축 데이터)


# 라벨, 타이틀 달기
13
plt.xlabel('abc')
14
plt.ylabel('def')
15
plt.title("qwe")






3. 선 그래프


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






모듈 import , 데이터 정의

from datetime import datetime
import pandas as pd
import os






좌표축 설정

plt.xlim(), plt.ylim()을 통해 x, y 좌표축의 범위 설정

ax = fig.add_subplot(1,1,1)
price.plot(ax=ax, style='black')
plt.ylim([1600,2200])
plt.xlim(['2019-05-01','2020-03-01'])






주석

annotate(): 그래프 안에 추가적으로 글자나 화살표 등 주석을 그릴 때 사용

# 주석달기
important_data = [(datetime(2019, 6, 3), "Low Price"),(datetime(2020, 2, 19), "Peak Price")]

for d, label in important_data:
    ax.annotate(label, xy=(d, price.asof(d)+10), # 주석을 달 좌표(x,y)
                xytext=(d,price.asof(d)+100), # 주석 텍스트가 위차할 좌표(x,y)
                arrowprops=dict(facecolor='red')) # 화살표 추가 및 색 설정






그리드

grid(): 그리드(격자눈금)를 추가

# 그리드, 타이틀 달기
plt.grid()






4. plot 사용법


plt.plot()명령으로 그래프를 그리면 matplotlib은 가장 최근의 figure객체와 그 서브플롯을 그린다.

plt.plot(): x데이터, y데이터, 마커옵션, 색상 등의 인자를 이용 가능

plt.subplot(): 서브플롯 추가

x = np.linspace(0, 10, 100) 

plt.subplot(2,1,1)
plt.plot(x, np.sin(x),'orange','o')






linestyle, marker

x = np.linspace(0, 10, 100) 

plt.plot(x, x + 0, linestyle='solid') 
plt.plot(x, x + 1, linestyle='dashed') 
plt.plot(x, x + 2, linestyle='dashdot') 
plt.plot(x, x + 3, linestyle='dotted')
plt.plot(x, x + 0, '-g') # solid green 
plt.plot(x, x + 1, '--c') # dashed cyan 
plt.plot(x, x + 2, '-.k') # dashdot black 
plt.plot(x, x + 3, ':r'); # dotted red
plt.plot(x, x + 4, linestyle='-') # solid 
plt.plot(x, x + 5, linestyle='--') # dashed 
plt.plot(x, x + 6, linestyle='-.') # dashdot 
plt.plot(x, x + 7, linestyle=':'); # dotted






5. Pandas로 그래프 그리기


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: 축의 그리드 표시할 지 여부






data가 DataFrame일때 plot 메서드 인자

subplots: 각 DataFrame의 칼럼을 독립된 서브플롯에 그린다.

sharex: subplots=True면 같은 X축을 공유하고 눈금과 한계를 연결

sharey: subplots=True면 같은 Y축을 공유

figsize: 그래프의 크기, 튜플로 지정

title: 그래프의 제목을 문자열로 지정

sort_columns: 칼럼을 알파벳 순서로 그린다.

0개의 댓글