언어/Python

[colab] 5. colab으로 matplotlib를 이용한 그래프 그리기

뭉지(moonz) 2021. 1. 22. 19:14
반응형

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개의 행, 1개의 열, data1은 첫번째 행, data2는 두번째 행에 위치한다.

 

- 이번엔 그래프를 가로로 위치시켜보겠다. 위에서 행이 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()

1개의 행, 3개의 열, data1은 첫번째 열, data2는 두번째 열, data3은 세번째 열에 위치한다.

 

반응형