STEP 1. 막대(Bar) 그래프
import matplotlib.pyplot as plt
%matplotlib inline
# 그래프 데이터
subject = ['English', 'Math', 'Korean', 'Science', 'Computer']
points = [40, 90, 50, 60, 100]
# 축 그리기
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
# 그래프 그리기
ax1.bar(subject, points)
# 라벨, 타이틀 달기
plt.xlabel('Subject')
plt.ylabel('Points')
plt.title("Yuna's Test Result")
# 보여주기
plt.savefig('./barplot.png') # 그래프를 이미지로 출력
plt.show() # 그래프를 화면으로 출력
1. 데이터 정의
%matplotlib inline은 IPython에서 사용하는 매직 메서드. 그래프와 같은 그림, 소리, 애니메이션과 같은 결과물을 Rich output이라 하는데, 이를 표현하는 방식을 정의함.
2. 축 그리기
그래프를 그리는 순서는 우선 하나의 그림(figure) 객체를 만들고 그 안에 하위 그래프(subplot)를 추가
이 figure() 객체에 add_subplot 메서드를 이용해 축을 그려주고, figsize 인자 값을 주어 그래프의 크기를 정할 수 있음.
3. 그래프 그리기
bar() 메서드를 이용해 막대그래프를 그리고, (x,y) 를 적어줌.
4. 그래프 요소 추가
x라벨, y라벨, 제목을 추가하기 위해서는 xlabel() 메서드와 ylabel() 메서드 title() 메서드를 이용
STEP 2. 선(line) 그래프
from datetime import datetime
import pandas as pd
import os
# 그래프 데이터
csv_path = os.getenv("HOME") + "/aiffel/data_visualization/data/AMZN.csv"
data = pd.read_csv(csv_path ,index_col=0, parse_dates=True)
price = data['Close']
# 축 그리기 및 좌표축 설정
fig = plt.figure()
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'])
# 주석달기
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')) # 화살표 추가 및 색 설정
# 그리드, 타이틀 달기
plt.grid()
ax.set_title('StockPrice')
# 보여주기
plt.show()
1. 그래프 데이터
Pandas의 Series는 선 그래프를 그리기에 최적의 자료구조를 갖추고 있음. price = data['Close']가 바로 Pandas의 Series.
좌표축설정 : plt.xlim(), plt.ylim()을 통해 x, y 좌표축의 적당한 범위를 설정
주석 : 그래프 안에 추가적으로 글자나 화살표 등 주석을 그릴 때는 annotate() 메서드를 이용
그리드 : grid() 메서드를 이용하면 그리드(격자눈금)를 추가
2. 축 그리기 및 좌표축 설정
figure로 객체 생성 뒤 add_subplot 해도 되지만, 이를 생략하는 방법이 있음.
plt.plot() 명령으로 그래프를 그리면 matplotlib은 가장 최근의 figure 객체와 그 서브플롯을 그림
plt,plot(x,y,마커옵션,색상) 등을 조정가능.
이렇게 2 줄로 줄일 수 있음
- (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: 축의 그리드 표시할지 여부
- pandas의 data가 DataFram일 때 plot 인자들
- subplots: 각 DataFrame의 칼럼을 독립된 서브플롯에 그린다.
- sharex: subplots=True 면 같은 X 축을 공유하고 눈금과 한계를 연결한다.
- sharey: subplots=True 면 같은 Y 축을 공유한다.
- figsize: 그래프의 크기, 튜플로 지정
- title: 그래프의 제목을 문자열로 지정
- sort_columns: 칼럼을 알파벳 순서로 그린다.
'Study (Data Science) > ML' 카테고리의 다른 글
Batch size, Epoch, Iteration (0) | 2022.12.06 |
---|---|
여러가지 머신러닝 모델들 (0) | 2022.12.06 |
Day2. 데이터 전처리 (0) | 2022.12.05 |
Day1. 데이터, 데이터베이스 (0) | 2022.12.04 |
EDA (Explratory Data Analysis) (1) | 2022.12.02 |
댓글