[U] Week 3 - Matplotlib

JaeJun Lee ·2022년 10월 6일
0

부스트캠프 AI Tech

목록 보기
21/30

Matplotlib은 Python에서 사용할 수 있는 시각화 라이브러리로 numpy와 scipy를 베이스로 하여 다양한 라이브러리와 호환성이 좋고 다양한 시각화 방법론을 제공한다.

  • 막대그래프
  • 선그래프
  • 산점도
  • etc..

matplotlib에서 그리는 시각화는 Figure라는 큰 틀에 Ax라는 서브플롯을 추가해서 만들고 서브플롯을 사용할 때는 add_subplot()을 사용한다.

import matplotlib as mpl
import matplotlib.pyplot as plt

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

figure 사이즈로 ax의 사이즈를 조정할 수 있으며 가로, 세로 길이(inch 단위)를 tuple 형태로 전달한다.

fig = plt.figure(figsize=(12, 7))
ax = fig.add_subplot()
plt.show()

ax를 여러 개 나누어서 그릴 수도 있는데 add_subplot(1,2,?)은 세로를 기준으로 두 개, (2,1,?)은 가로를 기준으로 두 개를 그린다.

fig = plt.figure()
ax = fig.add_subplot(1, 2, 1) 
ax = fig.add_subplot(1, 2, 2) 
plt.show()

같은 그래프를 동시에 그리게 되면 색깔이 자동으로 파랑, 주황, 초록 ... 등으로 지정되지만 다른 그래프를 동시에 그리게 되면 같은 색(파랑)으로 지정된다. 색상 지정은 한 글자, 색 이름, 16진수 등으로 다양하게 지정할 수 있다.

ax.plot([1, 1, 1], color='r') # 한 글자로 정하는 색상
ax.plot([2, 2, 2], color='forestgreen') # color name
ax.plot([3, 3, 3], color='#000000') # hex code (BLACK)

그래프를 구분하기 위해 범례를 추가할 수 있는데 이때 legend() 함수를 호출해야 시각화에도 보여진다.

ax.plot([1, 1, 1], label='1') 
ax.plot([2, 2, 2], label='2') 
ax.plot([3, 3, 3], label='3')
ax.legend()

타이틀은 각 ax와 figure 자체에도 지정할 수 있고 setter로 세팅하는 정보들은 getter로 받아올 수 있다.

ax1.set_title("ax1")
ax2.set_title("ax2")
fig.suptitle("fig") ## sup = super를 의미

ticks와 ticklables로 축에 값 및 텍스트를 지정할 수 있다.

ax.set_xticks([0, 1, 2])
ax.set_xticklabels(['zero', 'one', 'two'])

그래프에 annotation 및 화살표 등을 추가할 수도 있고 이때 정렬 형태는 제목과 다를 수 있다.

ax.annotate(text='This is Annotate', xy=(1, 2))

ax.annotate(text='This is Annotate', xy=(1, 2),
           xytext=(1.2, 2.2), 
            arrowprops=dict(facecolor='black'),
           )

0개의 댓글