2. matplotlib

1. matplotlib

1) 설치

  • 시각화 라이브러리로 주로 다차원 그래프를 위한 라이브러리
  • 파이썬에서 매트랩과 유사한 인터페이스를 지원하기위해 시작
pip install matplotlib
import matplotlib.pyplot as plt

2) 실습

import numpy as np
import matplotlib.pyplot as plt

data = np.array([1,2,3,4,5])

plt.plot(data)
plt.show()

plt.plot([1,2,3,4], [1,4,9,16])
plt.show()


2. 스타일 지정

1) 모양 지정

data = np.array([1,2,3,4,5])

plt.plot(data, 'ro') # 원
plt.show()

plt.plot(data, 'r^') # 삼각형
plt.show()

plt.plot(data, 'r--') # 점선
plt.show()

2) 색깔 & 모양 지정

data = np.array([1,2,3,4,5])

plt.plot(data, data**2, 'ro', # 빨간색 r, 동그라미 o
        data, data**3, 'g^',  # 초록색 g, 삼각형 ^
        data, data**4, 'bs')  # 파란색 b, 사각형 s
plt.show()

3) 스타일을 딕셔너리에서 지정

data_dict = {'x':[1,2,3,4,5], 'y':[1,4,9,16,25], 'style':'ro'}

plt.plot('x', 'y', 'style', data=data_dict)
plt.show()

3. 레이블 지정

1) X,Y 축 지정

data = [1,2,3,4,5]

plt.plot(data, data**2)
plt.xlabel('X_label')
plt.ylabel('Y_label')

plt.plot(data, data**2)
plt.show()

2) 범례 지정하기

data = [1,2,3,4,5]

plt.plot(data, data**2)
plt.xlabel('X_label')
plt.ylabel('Y_label')

plt.plot(data, data**2, label='data1')
plt.legend()
plt.show()

2) 범례 위치 지정하기

data = [1,2,3,4,5]

plt.plot(data, data**2)
plt.xlabel('X_label')
plt.ylabel('Y_label')

plt.plot(data, data**2, label='data1')
plt.legend(loc=(0.8, 0.8)) # 0,0 기준으로 몇 % 떨어져 있나
plt.legend(loc='upper right') # upper, lower, right, left
plt.legend()
plt.show()

3) 축 범위 지정

data = [1,2,3,4,5]

plt.plot(data, data**2, label='data1')
plt.xlim([-5, 5])
plt.ylim([-25, 25])
plt.show()

4. figure & subplot

  • figure는 큰 틀
  • ax라는 subplot인 하나의 그래프

4-1) 하나의 figure

fig = plt.figure()
ax = fig.add_subplot()

plt.show()

4-2) 여러개의 figure

fig = plt.figure()
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)

plt.show()

4-3) 3X3 배열의 figure

fig = plt.figure()
ax1 = fig.add_subplot(3,3,1)
ax2 = fig.add_subplot(3,3,5)
ax2 = fig.add_subplot(3,3,9)

plt.show()

4-4) 각 차트마다 데이터 넣기

fig = plt.figure()
ax1 = fig.add_subplot(2,2,1)
ax1.plot(data, data**2, 'ro')
ax2 = fig.add_subplot(2,2,2)
ax2.plot(data, data**3, 'g^')
ax3 = fig.add_subplot(2,2,3)
ax3.plot(data, data**4, 'y--')

plt.show()

5. bar plot

5-1) 세로 막대 차트

fig = plt.figure()
ax = fig.add_subplot()
ax.bar(['a','b','c','d','e'], [3,4,5,8,7])
plt.show()

5-2) 가로 막대 차트

fig = plt.figure()
ax = fig.add_subplot()
ax.barh(['a','b','c','d','e'], [3,4,5,8,7])
plt.show()

5-3) figure를 사용한 혼합 차트

fig = plt.figure()
ax1 = fig.add_subplot(2,2,1)
ax1.barh(['a','b','c','d','e'], [3,4,5,8,7])

ax2 = fig.add_subplot(2,2,3)
ax2.barh(['a','b','c','d','e'], [3,4,5,8,7])
plt.show()

5-4) histogram plot

  • histogram plot은 data의 분포를 나타낼 때 사용하며, 주로 다음과 같은 인자를 사용함
fig = plt.figure()
ax = fig.add_subplot()
ax.hist(np.random.randn(500))
plt.show()

5-5) scatter plot

  • 산점도 : 두 변수의 관계를 보여주는 자료 표시 방법
fig = plt.figure()
ax = fig.add_subplot()
x = np.random.rand(100)
y = np.random.rand(100)

ax.scatter(x,y)
plt.show()

fig = plt.figure()
ax = fig.add_subplot()
x = np.random.rand(100)
x1 = x[x>0.5]
x2 = x[x<=0.5]

y1 = np.random.rand(len(x1))
y2 = np.random.rand(len(x2))

ax.scatter(x1,y1, c='#FF0000')
ax.scatter(x2,y2, c='#0000FF')
plt.show()

6. pillow

  • 이미지 파일 형식을 지원 및 처리하는 라이브러리
  • matplotlib 라이브러리 설치시 같이 설치됨
from PIL import Image

image = Image.open('./image.jpg')

fig = plt.figure()
ax = fig.add_subplot()
ax.imshow(image)
plt.show()

from PIL import Image

image = Image.open('./image.jpg')
display(image)

좋은 웹페이지 즐겨찾기