본문 바로가기
Data Science/EDA Practice

[EDA Practice] Figure, Axes 객체

by 인사이티드 2023. 2. 9.

Matplotlib은 데이터 시각화에 필수적인 패키지이다. 이러한 그래프를 그릴 수 있는 이유는 Matplotlib만의 특별한 클래스들이 존재하기 때문이다. 바로 Figure와 Axes 클래스이다.

Matplotlib의 그래프를 담을 수 있는 Figure 클래스와 Axes 클래스를 알아보자.

 

1. Figure 클래스

일반적인 방식으로 plt.figure()를 수행하고 객체 타입을 확인한 결과이다.

fig = plt.figure()
type(fig)
=>
matplotlib.figure.Figure
<Figure size 432x288 with 0 Axes>


코드에서 볼 수 있듯이 matplotlib.figure.Figure 객체가 생성되는 것을 볼 수 있다. Figure 객체는 그래프 요소를 담을 수 있는 최상위 컨테이너이다. 그래프를 담을 수 있는 직사각형의 객체를 반환한다. Figure 객체는 다양한 파라미터가 존재하고 일반적으로 figsize를 조절하여 컨테이너 전체의 크기를 조절한다.

Figure 객체 파라미터



2. Axes 클래스

Axes가 없는 Figure 객체는 빈 깡통과 마찬가지이다. Axes 클래스는 Axis, Tick, Text 등 거의 대부분의 요소를 포함하고 있다. 아래 그림은 Figure와 Axes 객체의 관계를 설명한 그림이다.

Figure와 Axes 객체


그림을 보면 알 수 있듯이 Figure 객체 안에 Axes 객체가 들어가있는 것을 볼 수 있다. 또한, Axes 객체에는 기본적으로 축에 해당하는 Axis 객체 (X, Y)가 들어가있다.

 

우리가 일반적으로 일반적으로 수행하는 그래프 그리기는 세밀한 조작없이 바로 Axes 객체를 생성하기 때문에 가능한 일이다. 

fig = plt.figure()
sns.lineplot(x=[0,1], y=[0,1])

lineplot 생성 결과


matplotlib이나 seaborn으로 그래프를 그리면 자동으로 matplotlib.axes 객체가 생성되는 것을 볼 수 있다. 정확히는 AxesSubplot이라는 객체를 생성하는데, 이 객체는 다음 포스팅에서 다루도록 하겠다.


참고자료

[1] "4) matplotlib 구성", WikiDocs, https://wikidocs.net/4763

[2] "matplotlib.axes", matplotlib 공식문서, https://matplotlib.org/stable/api/axes_api.html#

'Data Science > EDA Practice' 카테고리의 다른 글

[EDA Practice] Seaborn 설정 (rc)  (0) 2023.06.23
[EDA Practice] Subplot 그리기  (0) 2023.02.09
[EDA Practice] 2023/W4 EDA Practice  (0) 2023.01.27
[EDA Practice] EDA란?  (0) 2023.01.20