plt.subplots(행 개수, 열개수)

하나의 화면 안에 여러 플롯을 넣을 수 있다.

  • 인자값 : fig, axes

fig, axes를 plt.subplots()의 인자로 넣은 뒤
axes[행,열].plot명령어를 입력해 각 subplot에 원하는 플롯을 넣을 수 있다.

2행 3열의 공간에 플롯 6개를 한번에 표현해보자

#data 생성
data = np.arange(1,15)

#밑 그림 : 2행 3열
fig, axex = plt.subplots(2,3)

axex[0, 0].plot(data)
axex[0, 1].plot(data*data)
axex[0, 2].plot(data ** 3)

앗 [1]행을 깜빡하고 안넣어줬다!

#data 생성
data = np.arange(1,15)

#밑 그림 : 2행 3열
fig, axex = plt.subplots(2,3)

axex[0, 0].plot(data)
axex[0, 1].plot(data*data)
axex[0, 2].plot(data ** 3)
axex[1, 0].plot(data%10)
axex[1, 1].plot(-data)
axex[1, 2].plot(data//20)

이렇게 지정한 행과 열(2행3열)에 그래프를 생성할 수 있다.

이때 레이아웃을 정리하고자 한다면

plt.tight_layout()

위의 코드를 추가해주면 된다.

그럼 깔끔하게 정리가 됨!

여기에 색을 변경하거나 label을 변경하고자 한다면 이전에 배운거 적용하면 된다.


이중 y축 표시 - ax1.twinx()

두 종류의 데이터를 동시에 하나의 그래프에 표시하기 위해 아래와 같은 이중 축을 표시할 수 있다.

ax1.twinx() 을 이용해서 ax1과 x축을 공유하는 새로운 Axes객체인 ax2를 만든다.

#라이브러리 호출
import matplotlib.pyplot as plt
import numpy as np

#플롯 형태
plt.style.use('default')
plt.rcParams['figure.figsize'] = (4,3)
plt.rcParams['font.size'] = 14

#플롯 데이터
x= np.arange(0,3)
y1 = x+1
y2 = -x-1

#subplots()을 설정없이 인자만 받아옴.
fig, ax1 = plt.subplots()

#그래프 설정
ax1.set_xlabel('X-Axis')
ax1.set_ylabel('1st Y-Axis')
line1 = ax1.plot(x, y1, color='green', label='1st Data')

ax2 = ax1.twinx()
ax2.set_ylabel('2nd Y-Axis')
line2 = ax2.plot(x, y2, color='deeppink', label='2nd Data')

#그래프 정리
lines = line1 + line2
labels = [l.get_label() for l in lines]
ax1.legend(lines, labels)

이때 범례를 우측에 두려면 로케이션을 만져주면 된다.(loc=’upper right’)

ax1.legend(lines, labels, loc=’upper right’)

0개의 댓글