아래의 모든 내용은 파이썬으로 데이터 주무르기(저자 민형기)의 예시를 사용했습니다.
▶ 시각화에 필요한 모듈 불러오기, matplotlib.pyplot as plt
# 모듈 불러오기
import matplotlib.pyplot as plt # 앞으로 plt란 값을 사용
%matplotlib inline # 그래프의 결과를 출력 세션에 나타나게 하는 설정
▶간단한 그래프 그리기
plt.figure()
plt.plot([1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1,0])
plt.show()
▶ sin함수 만들어보기
import numpy as np
t = np.arange(0,12,0.01) # 0에서 12까지 0.01 간격으로 데이터 만들기, x축
y = np.sin(t) # np에 있는 sin함수를 y에 저장
plt.figure(figsize=(10,6)) # 그림사이즈
plt.plot(t, y) # x값, y값
plt.show()
▶ xlabel, ylabel, title, 격자무늬 grid()
plt.figure(figsize=(10,6))
plt.plot(t, y)
plt.grid() # 격자 무늬
plt.xlabel('time') # x축 라벨 적용하기
plt.ylabel('Amplitude') # y축 라벨 적용하기
plt.show()
▶ plot 두 개 넣어 그래프 두 개 그리기
plt.figure(figsize=(10,6))
plt.plot(t, np.sin(t)) # sin그래프
plt.plot(t, np.cos(t)) # cos그래프
plt.grid()
plt.xlabel('time')
plt.ylabel('Amplitude')
plt.title('Example of sinewave')
plt.show()
▶ 범례 추가, legend
plt.figure(figsize=(10,6))
plt.plot(t, np.sin(t), label='sin')
plt.plot(t, np.cos(t), label='cos')
plt.grid()
plt.legend() # 범례 추가
plt.xlabel('time')
plt.ylabel('Amplitude')
plt.title('Example of sinewave')
plt.show()
▶ 선의 굵기 lw 옵션, 색상 지정 color 옵션
plt.figure(figsize=(10,6))
plt.plot(t, np.sin(t), lw=3, label='sin') # lw 선의 굵기
plt.plot(t, np.cos(t), 'r', label='cos') # 컬러 지정
plt.grid()
plt.legend()
plt.xlabel('time')
plt.ylabel('Amplitude')
plt.title('Example of sinewave')
plt.show()
▶ 축 범위 제한
plt.figure(figsize=(10,6))
plt.plot(t, np.sin(t), lw=3, label='sin')
plt.plot(t, np.cos(t), 'r', label='cos')
plt.grid()
plt.legend()
plt.xlabel('time')
plt.ylabel('Amplitude')
plt.title('Example of sinewave')
plt.ylim(-1.2, 1.2) # y축 제한
plt.xlim(0, np.pi) # x축 제한
plt.show()
▶ 다양한 그래프 그려보기
t = np.arange(0, 5, 0.5) # 변수 생성
plt.figure(figsize=(10,6))
plt.plot(t, t, 'r--') # 빨간색 점선
plt.plot(t, t**2, 'bs') # 파란색 사각형 모형
plt.plot(t, t**3, 'g^') # 초록색 삼각형 모형
plt.show()
▶ 따로 그려보기
t = np.arange(0, 5, 0.5)
plt.figure(figsize=(10,6))
pl1 = plt.plot(t, t**2, 'bs') # 첫 번째 그래프
plt.figure(figsize=(10,6))
pl2 = plt.plot(t, t**3, 'g^') # 두 번째 그래프
plt.show()
▶ 선 그래프
t = [0, 1, 2, 3, 4, 5, 6]
y = [1, 4, 5, 8, 9, 5, 3]
plt.figure(figsize=(10,6))
plt.plot(t, y, color='green') # 색깔 지정
plt.show()
▶ 선 스타일 지정 linestyle
plt.figure(figsize=(10,6))
plt.plot(t, y, color='green', linestyle='dashed') # 선 스타일 지정
plt.show()
▶ 데이터 존재하는 곳에 마킹 marker 옵션
plt.figure(figsize=(10,6))
plt.plot(t, y, color='green', linestyle='dashed', marker='o') # 마킹 지정
plt.show()
▶ 마커 색과 크기 지정 markerfacecolor & markersize
plt.figure(figsize=(10,6))
plt.plot(t, y, color='green', linestyle='dashed', marker='o',
markerfacecolor = 'blue', markersize=12) # 마커 색, 마커 크기 지정
plt.xlim([-0.5, 6.5]) # x축 제한
plt.ylim([0.5, 9.5]) # y축 제한
plt.show()
▶ 산포도 scatter
t = np.array([0,1,2,3,4,5,6,7,8,9])
y = np.array([9,8,7,9,8,3,2,4,3,4])
plt.figure(figsize=(10,6))
plt.scatter(t,y)
plt.show()
▶ marker 모양 바꾸기
plt.figure(figsize=(10,6))
plt.scatter(t,y, marker='>') # marker 지정
plt.show()
▶ 마커 크기 s 옵션, x축 값에 따라 색상 바꾸는 color map
colormap = t # x축인 t에 따라 색상을 바꿈
plt.figure(figsize=(10,6))
plt.scatter(t,y, s = 50, c = colormap, marker='>') # s옵션은 마커의 크기
plt.show()
▶ color bar 만들기
colormap = t
plt.figure(figsize=(10,6))
plt.scatter(t,y, s = 50, c = colormap, marker='>')
plt.colorbar() # colorbar 생성
plt.show()
▶ 데이터 3개 만들고, 평균 loc 옵션, 표준편차 scale 옵션 지정
# 랜덤변수 함수로 데이터 3개 만들기, loc 옵션으로 평균, scale 옵션으로 표준편차 지정
s1 = np.random.normal(loc=0, scale=1, size=1000)
s2 = np.random.normal(loc=5, scale=0.5, size=1000)
s3 = np.random.normal(loc=10, scale=2, size=1000)
plt.figure(figsize=(10,6))
plt.plot(s1, label='s1')
plt.plot(s2, label='s2')
plt.plot(s3, label='s3')
plt.legend()
plt.show()
▶ boxplot 표현하기
plt.figure(figsize=(10,6))
plt.boxplot((s1, s2, s3))
plt.grid()
plt.show()
▶ plot 크기 바꾸기
plt.figure(figsize=(10,6))
plt.subplot(221)
plt.subplot(222)
plt.subplot(212)
plt.show()
▶ 계속
plt.figure(figsize=(10,6))
plt.subplot(411)
plt.subplot(423)
plt.subplot(424)
plt.subplot(413)
plt.subplot(414)
plt.show()
▶ plot크기 다르게해서 여러 그래프 그려보기
t = np.arange(0,5,0.01)
plt.figure(figsize=(10,12))
plt.subplot(411)
plt.plot(t,np.sqrt(t))
plt.grid()
plt.subplot(423)
plt.plot(t,t**2)
plt.grid()
plt.subplot(424)
plt.plot(t,t**3)
plt.grid()
plt.subplot(413)
plt.plot(t,np.sin(t))
plt.grid()
plt.subplot(414)
plt.plot(t,np.cos(t))
plt.grid()
plt.show()
지금까지 matplotlib의 연습을 해봤습니다. 감사합니다.
'Python > 라이브러리' 카테고리의 다른 글
Pandas 고급 (0) | 2019.09.25 |
---|---|
편리한 시각화 도구 Seaborn (0) | 2019.09.19 |
Pandas 기초 익히기 (0) | 2019.09.16 |
댓글