파이썬 버전 3.7 기준
matplotlib 버전 3.1.0 기준
다수의 플롯의 작성(subplot)과 tight_layout() |
본 포스팅에서는 subplot()함수의 작성법에 대한 설명과 서브플롯(subplot)을 통해 하나의 Figure에 여러 개의 플롯을 직접 작성해보는 예제를 다뤄보도록 한다.
subplot의 작성 방법 |
subplot()의 단순한 작성 형식 |
subplot의 단순한 작성형식을 설명하자면 다음과 같다.
# ①번 방식
axes=subplot(nrows, ncols, index, **kwargs)
# ②번 방식
axes=subplot(pos, **kwargs)
# ③번 방식
axes=subplot(axes)
①, ②번 방식
이 두 방식은 세개의 정수를 입력받는 방식이며, 각 정수의 수는 10보다 작아야한다.
입력되는 정수는 plot의 좌표를 나타내며, 두 방식 모두 동일하게 아래와 같이 좌표가 입력된다.
- 첫번째 정수 : nrows, subplot의 행의 수를 나타낸다.
- 두번째 정수 : ncols, subplot의 열의 수를 나타낸다.
- 세번째 정수 : index, 인덱스를 나타낸다. 인덱스는 1부터 시작하며 순서는 위부터 오른쪽으로 위쪽에서 아래쪽 방향으로 설정된다.
①번 방식은 각 정수를 나누어 입력받는 방식이다.
- nrow, ncols, index 식으로 나누어서 입력받는다.
①번 방식 예)
subplot(1, 2, 1)
subplot(1, 2, 2)
②번 방식은 각 정수를 이어서 3자리수의 정수로 입력받는 방식이다.
②번 방식 예)
subplot(121)
subplot(122)
③번 방식
axes 객체를 바로 입력 받는 방법이다.
기존의 axes의 정보를 받아온다.
참고사항
tight_layout() 함수의 사용 |
이 함수는 자동으로 레이아웃을 맞춰주는 함수이다.
subplot을 작성하다보면 하나의 그래프 레이아웃이 다른 레이아웃에 넘어가는 경우도 생기고, 모양도 이쁘지 않게 나오는 경우가 있다.
이런 경우 이 함수를 사용하면 자동으로 레이아웃을 맞춰주기 때문에 굉장히 유용하게 사용할 수 있다.
이 함수에 대한 자세한 설명은 뒷포스팅(링크)에 존재하므로 필요하다면 참고할 수 있다.
subplot의 단순한 작성 예제 |
아래 예제는 서브플롯(subplot)을 작성하는 예제이다.
subplot() 함수와 tight_layout() 함수에 대한 자세한 설명은 다음포스팅(링크)에 있다.
먼저 첫번째 및 두번째의 서브플롯을 그리는 방식으로는 ②번 방식을 사용하였다.
세번째 서브플롯을 그리는 방식으로는 ①방식을 사용하였다.
위의 두 방식은 입력 방식만 다를 뿐 서로 동일한 방법을 사용하는 것을 확인할 수 있다.
그리고 두번째 플롯같은 경우는 마지막에 ③방식을 통해 서브플롯을 한번 더 설정하였고 해당 방식으로 두번째 플롯이 덮어쓰기가 된것을 확인할 수 있다.
마지막으로 tight_layout()함수를 통해 자동으로 레이아웃을 설정하도록 하게 만들었다.
작성 예제) subplot_ex.py
import matplotlib.pyplot as plt
# 첫번째 플롯
ax1= plt.subplot(131)
graph1= plt.plot([1,2,3])
# 두번째 플롯
ax2= plt.subplot(132)
graph2= plt.bar(x=[1,2,3], height=[1,2,3])
# 세번째 플롯
ax3= plt.subplot(1, 3, 3)
graph3= plt.scatter([1,2,3], [1,2,3])
# 두번째 플롯(축입력 방식)
ax2= plt.subplot(ax2)
graph2= plt.bar([1,2,3], [3,1,1])
# 자동 레이아웃 설정
plt.tight_layout()
plt.show()
|
|
|
| 참고자료 https://matplotlib.org/tutorials/introductory/pyplot.html#sphx-glr-tutorials-introductory-pyplot-py https://matplotlib.org/api/_as_gen/matplotlib.pyplot.subplot.html |
|
|
|
|
'Python > Matplotlib' 카테고리의 다른 글
파이썬 figure함수의 사용법(생성, 선택, 편집) - matplotlib(23) (0) | 2019.06.03 |
---|---|
서브플롯(subplot)과 tight_layout() 옵션(키워드인자) 상세사항 - matplotlib(22) (0) | 2019.06.02 |
막대그래프(bar chart, 바차트)의 옵션(키워드인자) 상세사항 - matplotlib(20) (0) | 2019.05.25 |
파이썬에서 막대그래프(bar graph, 바차트)의 작성법 - matplotlib(19) (0) | 2019.05.23 |
히스토그램(histogram)의 옵션(키워드인자) 상세사항 - matplotlib(18) (0) | 2019.05.21 |
댓글