1. matplot 이용해서 차트 그리기
"""
차트 그리기
1. 기본 차트 그리기
2. 산점도 그리기
3. subplot 이용 차트 그리기
4. 차트 크기 지정
5. ggplot 이용 차트 그리기(multi plots)
"""
# 차트 생성
import matplotlib.pyplot as plt
# 한글 지원하는 라이브러리 추가
from matplotlib import font_manager, rc
font_name = font_manager.FontProperties(fname="c:/Windows/Fonts/malgun.ttf").get_name()
rc('font', family=font_name)
# 차트 축 <- 음수 부호 지원
import matplotlib
matplotlib.rcParams['axes.unicode_minus'] = False
# 차트 데이터 생성
import numpy as np
# plt.plot(data) # 차트
# plt.show() # 보이기
help(plt.plot)
'''
plot(x, y) # plot x and y using default line style and color
plot(x, y, 'bo') # plot x and y using blue circle markers -> 'bo' : 'b' - blue, 'o' - circle markers
plot(y) # plot y using x as index array 0..N-1
plot(y, 'r+') # ditto, but with red plusses -> 'r+' : 'r' - red, '+' - plus marker
'''
# 1. 기본 차트 그리기
# 차트에 사용할 데이터 생성
data = np.arange(10) # range(n)과 동일
data
plt.plot(data) # plot(y), x 값 생략시 자동으로 x : index
plt.show()
# Spyder를 이용중이기 때문에 show 생략 가능
# Spyder의 경우 show를 사용하지 않아도 그래프 그려지지만 파이참, 이클립스 등에선 show까지 입력해야함
plt.plot(data, 'r+') # red 색깔의 '+' 기호로 그래프 그려짐
# 2. 산점도 그리기
data2 = np.random.randn(10) # 난수 10개
# 먼저 기본 그래프, 그 이후는 산점도
plt.plot(data, data2) # plot(x, y)
plt.plot(data, data2, 'ro') # red 색깔의 둥근 점으로 표시됨
plt.plot(data, data2, 'b^') # blue 색깔의 세모 점으로 표시됨
# 단색 산점도
plt.scatter(x=data, y=data2, c='r', marker='o')
# 여러가지 색상의 산점도
cdata = np.random.randint(1,4, 10) # 난수 정수 10개 (1~3 사이)
cdata
plt.scatter(x=data, y=data2, c=cdata, marker='o') # 3가지 색상
# 3. subplot 이용
# - 여러 차트를 한 화면을 분할해서 동시에 비교하면서 볼 수 있게 출력
fig = plt.figure()
x1 = fig.add_subplot(2,2,1) # 2행 2열의 1번째 셀 -> 이름 x1
x2 = fig.add_subplot(2,2,2)
x3 = fig.add_subplot(2,2,3)
x4 = fig.add_subplot(2,2,4) # 2행 2열의 4번째 셀 -> 이름 x4
# data 생성
data3 = np.random.randint(1,100, 100)
data4 = np.random.randint(10,110, 100)
cdata = np.random.randint(1,4, 100)
# 첫번째 영역 : histogram
x1.hist(data3)
# 두번째 영역 : 산점도
x2.scatter(data3, data4, c=cdata)
# 세번째 영역 : line
x3.plot(data3)
# 네번째 영역 : 색상, 선 스타일
x4.plot(data3, 'g--')
## subplot 시작부분(fig ~ )부터 네번째 영역 지정부분(x4.plot ~ )까지 블럭으로 실행
# 4. 차트 크기 지정
help(plt.figure)
fig2 = plt.figure(figsize= (12, 5)) # (w, h) (가로, 세로)
chart = fig2.add_subplot(1,1,1)
data1 = np.random.randn(50)
data2 = np.random.randn(50).cumsum() # cumsum() : Cumulative Sum 누적합
data1
data2
chart.plot(data1, color='r', label='step', drawstyle='steps-post') # 계단형 그래프
chart.plot(data2, color='b', label='line') # 선 그래프
# chart라는 같은 차트 공간에 두 데이터를 집어 넣음 -> 같이 나타남
# 차트 구성요소 추가
plt.title("계단형과 선 그래프") # 제목
plt.xlabel("index") # x축 이름
plt.ylabel("random number") # y축 이름
plt.legend(loc='best') # 범례
## 시작부분(fig2 ~ )부터 차트 구성요소까지 블럭으로 실행
# 5. ggplot 이용 차트 그리기(multi plots)
'''
- marker, color, line style, label 이용
'''
import matplotlib.pyplot as plt
import numpy as np
plt.style.use('ggplot') # 차트 격자 제공
# data 생성
data1 = np.random.randn(100) * 0.1
data2 = np.random.randn(100) * 0.2
data3 = np.random.randn(100) * 0.25
# 차트 생성
fig = plt.figure(figsize = (12, 5))
chart = fig.add_subplot(1,1,1)
chart.plot(data1, marker='o', color='blue', linestyle='-', label='Blue Solid')
chart.plot(data2, marker='*', color='green', linestyle='--', label='Green Dashed')
chart.plot(data3, marker='+', color='orange', linestyle='-.', label='Orange Dash Dot')
# 차트 구성요소 추가
chart.set_title('Line plots : marker, color and linestyle')
plt.xlabel("index")
plt.ylabel("randum number")
plt.legend(loc = 'best') # 범례는 상단에
------------------------------------------------------ example ------------------------------------------------------
'Python 과 머신러닝 > II. 데이터처리 문법' 카테고리의 다른 글
[Python 머신러닝] 2장. 차트 시각화 - (3)시계열 데이터 (4) | 2019.10.18 |
---|---|
[Python 머신러닝] 2장. 차트 시각화 - (2)pandas 객체 이용 (0) | 2019.10.17 |
[Python 머신러닝] 1장. Pandas - (2) 기술통계, DataFrame 병합 (0) | 2019.10.16 |
[Python 머신러닝] 1장. Pandas - (1) Series와 DataFrame (0) | 2019.10.16 |
[Python 머신러닝] 아나콘다 설치 & 스파이더 환경설정 (0) | 2019.10.15 |
댓글