파이썬은
Pandas
,Matplotlib
,Seaborn
등 여러 가지 시각화 라이브러리를 제공
$ pip install matplotlib
$ pip install seaborn
그래프를 그리는 전반적인 과정 (순서)
fig = plt.figure()
:
ax1 = fig.add_subplot(1,1,1)
:
ax1.bar(x, y)
축안에 어떤 그래프를 그릴지 메소드를 선택 후 인자로 데이터를 넣기
그래프 타이틀 축의 레이블 등을 plt의 여러 메소드 grid
, xlabel
, ylabel
을 이용해서 추가
plt.savefig
메소드를 이용해 저장
출처: AIFFEL FUNDAMENTAL_ 8. 데이터를 한눈에! Visualization
1. 모듈 import (matplotlib 사용할 예정)
import matplotlib.pyplot as plt
%matplotlib inline # 매직 메소드 / Rich output에 대한 표현 방식
Rich output
: 그래프와 같은 그림, 소리, 애니메이션 과같은 결과물
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")
Pandas의 Series는 선 그래프를 그리기에 최적의 자료구조를 가짐.
Pandas도 자체적인 선 그래프 그리기 기능을 제공.
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()
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')
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
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
: 축의 그리드 표시할 지 여부
subplots
: 각 DataFrame의 칼럼을 독립된 서브플롯에 그린다.
sharex
: subplots=True면 같은 X축을 공유하고 눈금과 한계를 연결
sharey
: subplots=True면 같은 Y축을 공유
figsize
: 그래프의 크기, 튜플로 지정
title
: 그래프의 제목을 문자열로 지정
sort_columns
: 칼럼을 알파벳 순서로 그린다.