파이썬 버전 3.7 기준
matplotlib 버전 3.1.0 기준
서브플롯(subplot)의 키워드 인자 상세사항 |
본 포스팅에서는 subplot() 함수 및 tight_layout() 함수의 입력 키워드인자에 대한 상세 설명를 다룬다.
서브플롯의 기초적인 작성법은 선행포스팅(링크)를 참고하도록 한다.
subplot(*args, **kwargs) |
이 함수는 Figure에 나뉜 영역 중 서브플롯(subplot)을 추가해주는 함수이다.
*args |
입력 형태: int
설명
3자리수의 정수(pos)나 3개의 분리된 정수(nrows, ncols, index)를 입력 받는다.
입력되는 정수는 plot의 좌표를 나타내며, 두 방식 모두 동일하게 아래와 같이 좌표가 입력된다.
- 첫번째 정수 : nrows, subplot의 행의 수를 나타낸다.
- 두번째 정수 : ncols, subplot의 열의 수를 나타낸다.
- 세번째 정수 : index, 인덱스를 나타낸다. 인덱스는 1부터 시작하며 순서는 위부터 오른쪽으로 위쪽에서 아래쪽 방향으로 설정된다.
※ 각 정수는 10보다 작은 값이어야 한다.
입력방식 예제)
# 3개로 분리된 정수를 사용한 입력 방법
subplot(nrows, ncols, index, **kwargs)
# 3자리수의 정수를 사용한 입력방법
subplot(pos)
projection |
입력 형태: str, None
설명
선택적으로 입력이 가능하다.
플롯의 투영(projection) 방법을 설정한다.
다양한 투영 방법이 존재하며, 아래와 같다.
- None, 'aitoff', 'hammer', 'lambert', 'mollweide', 'polar', 'rectilinear', str가 입력 가능하다.
- 이 중에 가장 많이 쓰이는 'rectilinear'로 선형적인 사각형 모양의 투영 방법을 선택한다.
- 그 외에 다른 방법은 해당하는 문자열에 projection을 추가해서 구글링하면 어떤식의 투영방식인지 확인할 수 있으므로 참고바란다.
기본값 None이며, 이 때 'rectilinear'가 입력된다.
polar |
입력 형태: bool
설명
선택적으로 입력이 가능하다.
sharex, sharey |
입력 형태: Axes
설명
선택적으로 입력이 가능하다.
입력된 축(axis)과 x축 혹은 y축을 서로 공유한다.
공유된 축(axis)는 범위(limit), 틱(tick), 스케일(scale)을 동일하게 가진다.
label |
입력 형태: str
설명
선택적으로 입력이 가능하다.
입력되는 그래프(axes)의 라벨을 작성한다.
**kwargs |
설명
subplot()함수는 axes의 베이스클래스에 대한 키워드 인자를 사용할 수 있다.
tight_layout(pad=1.08, h_pad=None, w_pad=None, rect=None) |
이 함수는 자동으로 명시된 여백(padding)에 관련된 서브플롯 파라미터를 조정한다.
이 함수에서의 모든 키워드 인자는 선택적으로 입력 가능하다.
입력 없이 사용할 경우 기존에 세팅된 기본값을 이용하여 자동으로 레이아웃을 설정한다.
pad |
입력 형태: float
설명
figure의 모서리와 서브플롯의 모서리 사이의 여백(padding)을 설정한다.
이 키워드 인자의 입력값은 폰트 크기와 여백간의 분율이다.
기본값은 1.08이다.
h_pad, w_pad |
입력 형태: float
설명
서로 인접한 서브플롯(subplot)의 모서리(edge)간의 높이 및 너비의 여백을 설정한다.
h_pad는 높이의 여백을, w_pad는 너비의 여백을 설정한다.
기본값은 None이다.
rect |
입력 형태: tuple (left, bottom, right, top)
설명
서브플롯을 넣기 위한 사각형을 설정하며 (왼쪽, 바닥쪽, 오른쪽, 위쪽)의 값을 입력 받는다.
입력되는 값은 figure의 총 크기대비로 정규화된 값이다.
기본값은 (0, 0, 1, 1)을 입력받는다.
figure의 생성 및 선택 방법 |
figure() 함수는 matplotlib에서 figure를 만들고 편집할 수 있게 만들어주는 함수이다.
figure의 작성 방법 |
먼저 figure() 함수의 주요 인자에 대한 작성 형식은 다음과 같다.
figure()의 작성 형식)
fig=figure(num=figure number, figsize=(x,y))
fig=figure(figure number, (x,y))
fig=figure()
첫번째 줄과 같이 키워드 인자를 사용하여 입력이 가능하고, 두번째와 같이 위치인자를 이용하여 입력하는 방식 역시 가능하다.
세번재 줄처럼 아예 입력을 입력하지 않는 경우 기본 값으로 설정된 새로운 figure를 생성하며, 좀 더 응용하면 키워드 인자를 입력하여 figsize만 입력하는 것도 가능하다.
각 입력 변수가 의미하는 바는 다음과 같다.
- num에 입력되는 figure number는 figure의 번호를 의미한다.
- figsize에 입력되는 이터레이블은 figure의 사이즈를 의미하며, 인치(inch)단위로 입력받는다.
figure의 작성 예제 |
figure에 대한 설명은 대화형 모드를 통해 진행하는 것이 이해하기 좋다고 생각하여 스크립트 대신 대화형 모드를 사용하고자 한다.
matplotlib의 import
먼저 예제를 진행하기위해 matplotlib를 import 해줘야한다.
In[2]: import matplotlib.pyplot as plt
자동기능을 활용한 figure의 생성
아무 입력 없이 figure() 함수만 실행할 경우 기본 값으로 입력된 figure를 생성한다.
다른 figure가 여러개 존재하더라도 이렇게 실행할 경우 새로운 figure를 생성한다.
아래의 예제에서는 figure가 없는 상태에서 생성을 했으므로 figure1이 생성이 된다.
figure가 생성 뒤에는 해당 figure가 활성화 되어 있으므로 해당 figure에서 작업을 진행시킬 수 있다.
In[3]: plt.figure()
Out[3]: <Figure size 640x480 with 0 Axes>
In[4]: plt.plot([1,2,3])
Out[4]: [<matplotlib.lines.Line2D at 0x1173e430>]
위치 인자를 통한 figure의 생성 및 크기 조정
아래의 예제는 위치인자를 통해 figure를 생성하는 것을 보여준다.
첫번째 위치에는 figure number를 두번째에는 figure의 사이즈를 입력받는다.
num자리에 3을 입력했으므로 figure 3이 생성된다.
In[5]: plt.figure(3,[5,6])
Out[5]: <Figure size 500x600 with 0 Axes>
In[6]: plt.plot([3,2,1])
Out[6]: [<matplotlib.lines.Line2D at 0xee73a50>]
num과 figsize 키워드인자를 통한 figure의 생성 및 크기 조정
아래의 예제는 키워드 인자를 통해 figure를 생성하는 것을 보여준다.
각각의 키워드 인자에 필요한 수치를 입력했다.
num에 5을 입력했으므로 figure 5가 생성된다.
In[7]: plt.figure(num=5, figsize=[10,10])
Out[7]: <Figure size 1000x1000 with 0 Axes>
In[8]: plt.plot([2,3,4])
Out[8]: [<matplotlib.lines.Line2D at 0xf241b30>]
num과 figsize를 통한 figure의 활성화
앞서 작성했던 figure 3을 다시 편집하기 위해서도 figure() 함수를 적용할 수 있다.
이 예제에서는 키워드 인자를 이용하여 figure 3을 활성화 시킨 후 편집을 진행하였다.
해당 예제를 수행하면 figure 3의 플롯에 데이터가 추가되는 것을 확인할 수 있다.
이 예제에서는 키워드 인자를 이용하였지만, 위치 인자를 이용해서 하는 것도 가능하다.
In[9]: plt.figure(num=3)
Out[9]: <Figure size 500x599 with 1 Axes>
In[10]: plt.plot([5,6,7])
Out[10]: [<matplotlib.lines.Line2D at 0xf291e30>]
figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True, FigureClass=<class 'matplotlib.figure.Figure'>, clear=False, **kwargs) |
이 함수는 Figure를 생성 및 편집 할 수 있게 해준다.
num |
입력 형태: int, str
설명
선택적으로 입력이 가능하다.
입력 형태에 따라 거동이 변화하며, 크게 입력되지 않을 경우와 정수(int)가 입력되는 경우, 그리고 문자열(string, str)이 입력되는 경우가 존재한다.
값이 입력되지 않는 경우(혹은 None의 입력)
figsize |
입력 형태: (float, float)
설명
선택적으로 입력이 가능하다.
figure의 너비(width), 높이(height)를 인치(inch)단위로 입력 받는다.
기본값은 None이고, 이 경우 rcParams["figure.figsize"]=[6.4, 4.8]으로 입력된다.
dpi |
입력 형태: int
설명
선택적으로 입력이 가능하다.
figure의 해상도(resolution)을 설정할 수 있다.
기본값은 None이며, 이 경우 rcParams["figure.dpi"]=100가 입력된다.
facecolor |
입력 형태: color spec
설명
선택적으로 입력이 가능하다.
edgecolor |
입력 형태: color spec
설명
선택적으로 입력이 가능하다.
figure의 모서리(edge)의 색을 설정한다.
frameon |
입력 형태: bool
설명
선택적으로 입력이 가능하다.
False이 입력될 경우, figure의 프레임(frame)을 그리는 것을 막는다.
기본값은 True이다.
FigureClass |
입력 형태: subclass of Figure
설명
선택적으로 입력이 가능하다.
커스터마이징된 Figure 인스턴스를 사용할 수 있다.
clear |
입력 형태: bool
설명
선택적으로 입력이 가능하다.
True가 입력되고 이미 figure가 존재하는 경우에 이를 제거한다.
기본값은 False이다.
|
|
|
| 참고자료 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(24) (0) | 2019.06.04 |
---|---|
파이썬 figure함수의 사용법(생성, 선택, 편집) - matplotlib(23) (0) | 2019.06.03 |
여러개의 그래프의 작성(subplot)과 tight_layout - matplotlib(21) (0) | 2019.06.01 |
막대그래프(bar chart, 바차트)의 옵션(키워드인자) 상세사항 - matplotlib(20) (0) | 2019.05.25 |
파이썬에서 막대그래프(bar graph, 바차트)의 작성법 - matplotlib(19) (0) | 2019.05.23 |
댓글