(3-3) Facet 사용하기
210821
1. Facet
Facet이란 분할을 의미한다. 화면상에 View를 분할 및 추가하여 다양한 관점을 전달할 수 있다.
같은 데이터셋에 서로 다른 인코딩을 통해 다른 인사이트를 제공
같은 방법으로 동시에 여러 feature를 볼 수 있음
큰 틀에서 볼 수 없는 부분 집합을 세세하게 보여줄 수 있음
2. Matplotlib에서 구현
2.1 Figure와 Axes

Figure는 큰 틀, Ax는 각 플롯이 들어가는 공간이다.
따라서, Figure는 항상 1개, 플롯은 사용자가 정한 n개이다.
2.2 NxM subplots
가장 쉬운 방법 3가지
plt.subplot()
plt.figure() + fig.add_subplot()
plt.subplots()
쉽게 조정할 수 있는 요소
figuresize
dpi
sharex, sharey
squeeze
aspect
2.3 Grid Spec

위 서브플롯을 표현하기 위한 2가지 방법이 있다
Slicing 사용
💙 : axes[0, :3]
💛 : axes[1:, :3]
💜 : axes[3, :]
fig.add_grid_spec()
x, y, dx, dy를 사용
💙 : (0, 0), 1, 3
💛 : (1, 0), 3, 3
💜 : (0, 3), 1, 4
fig.subplot2grid()
2.4 내부에 그리기

ax.inset_axes()
Ax내부에 서브플롯을 추가하여 외부 정보를 적은 비중으로 위치시킬 수 있다.
2.5 외부에 그리기

make_axes_locatable(ax)
그리드를 사용하지 않고 사이드에 추가하는 방법으로 방향의 통계정보나 제목 등의 텍스트를 추가할 수 있다.
3-3-Facet
1. Figure & Subplots
1-1. Figure & Axes
1-3. Python과 Matplotlib 에서 이미 살펴보았기에 가볍게만 보겠습니다.


1-2. Figure Color
하얀 배경의 내용일 떄 차트와 배경을 구분하기 위해 차트 배경 색을 조정할 수 있습니다.

2. Figure & Ax Properties
2-1. DPI
dpi: Dots per Inch
DPI는 인치에 해당하는 dot 수를 정하는 인자로 해상도를 의미합니다. 기본값은 100입니다.
150, 200, 300 값 등을 조정하며 원하는 해상도로 출력할 수 있습니다.


이 함수를 이용해 원하는 해상도로 fig를 저장할 수 있다.
노트북과 같은 디렉토리에 파일이 저장된다.
2-2. Sharex, Sharey
sharex,sharey
개별 ax에 대해서나 subplots 함수를 사용할 때는 sharex, sharey를 사용하여 축을 공유할 수 있습니다.


fig.add_subplot 의 sharex 또는 sharey 인자로 공유할 ax를 선택할 수도 있고 plt.subplots 으로 초기에 fig를 생성할 때 이 값을 True 로 설정하면서 공유할 수도 있다.
2-3. squeeze와 flatten
squeeze
subplots()로 생성하면 기본적으로 다음과 같이 서브플롯 ax 배열이 생성됩니다.
1 x 1 : 객체 1개 (
ax)1 x N 또는 N x 1 : 길이 N 배열 (
axes[i])N x M : N by M 배열 (
axes[i][j])
numpy ndarray에서 각각 차원이 0, 1, 2로 나타납니다. 이렇게 되면 경우에 따라 반복문을 사용할 수 있거나, 없거나로 구분됩니다.
squeeze를 사용하면 항상 2차원으로 배열을 받을 수 있고, 가변 크기에 대해 반복문을 사용하기에 유용합니다.

plt.subplots()나 plt.gca()로 받는 ax 리스트는 numpy ndarray로 전달됩니다.
그렇기에 1중 반복문을 쓰고 싶다면 flatten() 메서드를 사용할 수 있습니다.

2-4. aspect
aspect


3. Gridspec
3-1. add_gridspec
N by M 그리드에서 슬라이싱으로 서브플롯을 배치할 수 있습니다.

3-2. subplot2grid
N x M 그리드에서 시작점에서 delta x, delta y로 표현할 수 있습니다.
개인적으로는 add_gridspec을 더 선호합니다.

3-3. add_axes
특정 플롯을 임의의 위치에 만드는 메서드입니다.
위치를 조정하여 그래프를 그리는 게 쉽지는 않기 때문에 추천하지 않습니다.

3-4. inset_axes
미니맵 등 원하는 서브플롯을 그릴 때 사용할 수 있습니다.
표현하고자 하는 메인시각화를 해치지 않는 선에서 사용하는 것을 추천합니다.


3-5. make_axes_locatable
일반적으로 colorbar에 많이 사용합니다.


Last updated
Was this helpful?