Updated:

import matplotlib.pyplot as plt

1. figure, axes

  • figure: 바탕이 되는 그림판, axes를 그리려면 먼저 figure를 만들어야한다.

  • axes : 좌표축들로 이루어진 그래프를 가리킨다. figure내에 존재한다.

하나의 figure 안에는 여러가지 axes들이 존재할 수 있다.

2. figure 만들기

figure를 만드는 방법은 plt.figure() 메소드를 활용하면 된다.

plt.figure()는 Figure를 만들어 반환한다.

몇가지 parameter를 소개하자면 figsize(figure 크기), facecolor(바탕색)이 있다.

fig = plt.figure()

fig2 = plt.figure(figsize=(5,5),facecolor='linen')
<Figure size 432x288 with 0 Axes>



<Figure size 360x360 with 0 Axes>

3. axes 만들기

3.1.fig.add_subplot()

figure를 먼저 만든 후 사용할 수 있다.

  • fig.add_subplot(nrow,ncols,index)
    • 전체 figure를 (nrow*ncols)칸으로 구분하여 그 중 index번째 칸을 가리키는 ax를 반환한다. 이 때 ax는 ndarray 형태를 지닌다.
    • index는 맨 왼쪽 위부터 1, 그 다음 오른쪽으로 2, … , nrow * ncols 이런식으로 진행된다.
fig = plt.figure(figsize=(5,5),facecolor='linen')

ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
ax4 = fig.add_subplot(2,2,4)

fig = plt.figure(figsize=(5,5),facecolor='linen')

ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,3)
ax3 = fig.add_subplot(1,2,2)

3.2. plt.subplots()

subplots()는 subplots()로 만든 axes와 그 axes를 이루는 figure를 모두 반환하기 때문에 별도의 figure를 먼저 만들지 않아도 사용할 수 있다.

  • plt.subplots(nrows,ncols)
    • Figure와 axes(총 nrows * ncols 개)를 반환한다.
    • 각 ax는 (nrows*ncols)로 이루어진 칸을 가리킨다.
fig, axes = plt.subplots(2,2)

for ax in axes:
    print(ax)
[<AxesSubplot:> <AxesSubplot:>]
[<AxesSubplot:> <AxesSubplot:>]

3.3. plt.subplot2grid()

figure를 먼저 만든 후 사용할 수 있다.

  • plt.subplot2grid(shape,loc,rowspan,colspan,fig)
    • ax를 반환한다.
    • shape : (nrows,ncols)를 가리킨다.
    • loc: shape중 몇번째 칸에 있는지 가리킨다. (row,col)로 표현한다. e.g.) 첫번째 행 첫번째 열의 칸: (0,0)
    • rowspan : 해당 ax가 행을 얼마나 차지할 지 설정
    • colspan: 해당 ax가 열을 얼마나 차지할 지 설정
    • fig: 어디 figure에 적용이 되는 지 설정
fig = plt.figure(figsize=(5,5))

ax1 = plt.subplot2grid((2,2),(0,0),fig=fig)
ax2 = plt.subplot2grid((2,2),(1,1),fig=fig)

fig = plt.figure(figsize=(5,5))

ax1 = plt.subplot2grid((2,2),(0,0),colspan=2,fig=fig)
ax2 = plt.subplot2grid((2,2),(1,1),fig=fig)

fig = plt.figure(figsize=(5,5))

ax1 = plt.subplot2grid((2,2),(0,0),rowspan=2,fig=fig)
ax2 = plt.subplot2grid((2,2),(1,1),fig=fig)

3.4. fig.add_axes()

figure를 먼저 만들고 나서 사용할 수 있다.

  • fig.add_axes(rect)
    • ax를 반환한다.
    • rect: [left, bottom, width, height] 각 요소는 figure width와 height에 대한 비율이다.
      • left, bottom : 시작 위치를 가리킨다.
      • width, height : 해당 ax의 크기를 가리킨다.
fig = plt.figure(figsize=(5,5),facecolor='linen')

ax1 = fig.add_subplot()
ax2 = fig.add_axes([0.4,0.4,0.45,0.45])

Leave a comment