matplotlib는 그래프를 그려주는 외부 라이브러리이다! 드디어 나도 데이터 시각화를 할 수 있다.
우리는 matplotlib 라이브러리의 pyplot 모듈을 이용해서 그래프를 그리는 기능을 사용하겠다.
그래서 pandas와 numpy를 import한 것처럼 pyplot도 import하고 시작해보자!
이번 글에서는 간단히 그래프를 그리는 방법만 간단히 알아보겠다.
- 먼저 그래프를 그리기 전에 글꼴 및 그래프에 대한 설정을 하겠다.
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
%matplotlib inline
plt.rc('font', family='NanumGothic Eco') # 글꼴 정의
plt.rcParams['figure.figsize'] = (8, 8)
# rcParams[]로 두께, 글씨크기 등 여러가지 설정 가능하다.
# 'figure.figsize'로 canvas 사이즈를 조절할 수 있다. (가로, 세로 길이) = (8, 8)
# figure가 한개의 canvas를 의미한다.
- 추가적으로, 설정한 폰트 글꼴 및 사이즈를 확인하는 방법은
>>> print(f"설정 폰트 글꼴: {plt.rcParams['font.family']}, 설정 폰트 사이즈: {plt.rcParams
['font.size']}")
설정 폰트 글꼴: ['NanumGothic Eco'], 설정 폰트 사이즈: 10.
1.1. 단일 그래프 나타내기
- 여태 공부했듯이, 배열은 numpy의 arange메서드로 생성한다!
>>> data = np.arange(1,100) # 1부터 100 전까지의 배열 ndarray 생성
>>> plt.plot(data) # 그래프에 넣을 데이터 입력 (나중에는 x,y값을 넣는 일도 생긴다.)
[<matplotlib.lines.Line2D object at 0x000002C2A718E430>]
>>> plt.show() # 이 명령어를 실행해야 그래프가 화면에 나타난다!
- 당연히 1부터 99까지의 숫자를 넣었으니 y축에 0부터 100까지 범위로 나타낸다.
1.2. 다중 그래프
- 1개의 canvas 안에 다중 그래프 그리기.
>>> data1 = np.arange(1,51)
>>> plt.plot(data1)
[<matplotlib.lines.Line2D object at 0x000002C2A7B079A0>]
>>> data2 = np.arange(51,101)
>>> plt.plot(data2)
[<matplotlib.lines.Line2D object at 0x000002C2A47775E0>]
>>> plt.show()
# 밑에 코드를 보면 알겠지만 캔버스를 한개만 생성했기 때문에 두개의 그래프가 한 캔버스 안에 그려지는 것이다.
# 디폴트는 캔버스 한개이다.
- 2개의 figure로 나누어서 다중 그래프 그리기
- figure() 는 새로운 그래프 canvas를 생성해주는 메서드다. 기본으로 한개의 canvas가 생성되어 있다.
>>> data1 = np.arange(100,201)
>>> plt.plot(data1)
[<matplotlib.lines.Line2D object at 0x000002C2A4D2A8B0>]
>>> data2 = np.arange(200,301)
>>> plt.figure() # 한개의 figure를 더 생성해준 후에 data2를 입력하니, 두개의 canvas로 나눠진다.
<Figure size 800x800 with 0 Axes>
>>> plt.plot(data2)
[<matplotlib.lines.Line2D object at 0x000002C2A4D6F9D0>]
>>> plt.show()
1-3. 여러개의 plot을 그리는 방법
- subplot() 메서드를 이용한다.
- subplot( row 수, column 수, index) : 즉, 생성할 열과 행 수, 위치할 index(그래프의 위치)를 적어주면 된다.
- 먼저 그래프를 세로로 위치시켜보겠다. (행이 2개이어야 할 것이다!)
>>> data1 = np.arange(100,201)
>>> plt.subplot(2, 1, 1) # 행 2개, 열1개 생성후, data1그래프는 1번째 인덱스에 위치.(위에 위치할 것으로 예상)
>>> plt.plot(data1)
>>> data2 = np.arange(200,301)
>>> plt.subplot(2, 1, 2) # 행 2개, 열1개 생성후, data2그래프는 2번째 인덱스에 위치.(아래에 위치할 것으로 예상)
>>> plt.plot(data2)
>>> plt.show()
# 코드는 동일하나 subplot() 괄호 내에서 콤마를 제거해줘도 똑같은 결과가 나온다.
# plt.subplot(211)
# plt.subplot(212)
- 이번엔 그래프를 가로로 위치시켜보겠다. 위에서 행이 2개 있었지만, 이번에는 열이 2개있으면 된다.
- 세 그래프를 그릴 것이기 때문에 열 3개를 생성하겠다!
data1 = np.arange(100,201)
plt.subplot(1, 3, 1) # 행1개, 열3개 생성하여, 첫번째 열에 위치한다.
plt.plot(data1)
data2 = np.arange(200, 301)
plt.subplot(1, 3, 2) # 행1개, 열3개 생성하여, 두번째 열에 위치한다.
plt.plot(data2)
data3 = np.arange(300,401)
plt.subplot(1, 3, 3) # # 행1개, 열3개 생성하여, 세번째 열에 위치한다.
plt.plot(data3)
plt.show()
'Python' 카테고리의 다른 글
[colab] 7. colab으로 scikit-learn 모듈 사용하기(Linear SVC) (0) | 2021.01.23 |
---|---|
[colab] 6. 머신러닝 (0) | 2021.01.23 |
[colab] 4. colab으로 데이터 전처리 실습하기 (0) | 2021.01.22 |
[colab] 3. colab으로 pandas 모듈 사용하기(2) (0) | 2021.01.21 |
[colab] 3. colab으로 pandas 모듈 사용하기(1) (0) | 2021.01.20 |