subplot의 사이즈를 각각 다르게 조절합시다!

최대 1 분 소요

subplot의 사이즈는 어떻게 조절할 수 있을까요?

  • 전체 figure에서 한번에 조절할 수있는 방법이 있는건가 싶었는데(아마도 있긴 있겠지만), grid로 한번에 넘겨주는 게 더 깔끔한 것 같아요. 네 여기서는 gridspec이라는 것을 사용해서 그립니다.
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import gridspec

# generate some data
x = np.arange(0, 10, 0.2)
y = np.sin(x)

# plot it
fig = plt.figure(figsize=(15, 6)) 
gs = gridspec.GridSpec(nrows=3, # row 몇 개 
                       ncols=2, # col 몇 개 
                       height_ratios=[3, 2, 1], 
                       width_ratios=[12, 3]
                      )
"""
앞에서 row, column의 수를 함께 넘겨줘서 gridspec에 인덱싱할 때, 
2차원 어레이에 접근하는 식으로 해야하는줄 알았는데 아닙니다. 
그냥 row size * column size 형태의 1차원 어레이라고 생각하고 하면 됩니다.
"""
ax0 = plt.subplot(gs[0])
ax0.plot(x, y)
ax1 = plt.subplot(gs[1])
ax1.plot(y, x)
ax1 = plt.subplot(gs[2])
ax1.plot(y, x)
ax1 = plt.subplot(gs[3])
ax1.plot(y, x)
ax1 = plt.subplot(gs[4])
ax1.plot(y, x)
ax1 = plt.subplot(gs[5])
ax1.plot(y, x)

plt.savefig('../../assets/images/markdown_img/change_subplot_size_20180516.svg')
plt.show()

reference

댓글남기기