Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib 플롯의 해부학: Figure와 Axes 계층 구조 완벽 정리

Matplotlib란 무엇인가?

Matplotlib는 NumPy를 기반으로 만들어진 파이썬(Python) 데이터 시각화 라이브러리입니다. 복잡한 데이터를 그래프로 표현할 수 있게 해주며, 데이터 분석 결과를 직관적으로 전달하는 데 필수적인 도구로 널리 사용되고 있습니다.

Matplotlib의 가장 큰 특징 중 하나는 트리(tree) 형태의 계층 구조를 가지고 있다는 점입니다. 하나의 플롯(plot)을 구성하는 모든 요소들이 각각 객체(object)로 이루어져 있으며, 이 객체들은 상위-하위 관계로 연결되어 있습니다.

Figure: 가장 바깥쪽의 저장 공간

Matplotlib에서 'Figure'는 그래프 전체를 담는 가장 바깥쪽 컨테이너라고 이해할 수 있습니다. 쉽게 말해, Figure는 하나의 '그림판' 또는 '창(window)'과 같은 역할을 합니다.

중요한 점은 하나의 Figure가 여러 개의 'Axes' 객체를 포함할 수 있다는 것입니다. 즉, 하나의 창 안에 여러 개의 그래프를 배치하는 것이 가능합니다.

Axes: 실제 그래프가 그려지는 영역

여기서 주의해야 할 부분이 있습니다. Matplotlib에서 말하는 'Axes'는 'Axis'(축)의 복수형이 아닙니다. 많은 초보자들이 혼동하는 부분이지만, Axes는 완전히 다른 개념입니다.

'Axes'는 Figure의 일부분으로, 흔히 서브플롯(subplot)이라고 불립니다. Axes 내부에는 실제 데이터가 시각화되며, 그래프의 모든 요소를 조작할 수 있는 기능을 제공합니다.

정리하면 다음과 같습니다.

  • Figure: 하나 이상의 Axes 객체를 담는 최상위 컨테이너(상자)
  • Axes: Figure 안에 존재하는 개별 플롯 영역(서브플롯), 그래프 조작의 단위

Axes 하위 요소들

Axes 아래에는 더 세부적인 구성 요소들이 계층적으로 위치합니다.

  • 눈금(Tick marks): 축 위의 값 표시
  • 선(Line): 데이터를 나타내는 그래프 선
  • 범례(Legend): 그래프 요소의 설명
  • 텍스트 박스(Text box): 제목이나 주석 등 텍스트 요소

Matplotlib에서 이러한 모든 객체는 개별적으로 조작 가능합니다. 따라서 사용자는 색상, 크기, 위치, 스타일 등 원하는 대로 그래프의 세부 사항을 자유롭게 수정할 수 있습니다.

계층 구조 한눈에 보기

아래 이미지는 Matplotlib 공식 문서에서 제공하는 플롯 해부학(anatomy of a figure) 예시로, Figure와 Axes, 그리고 그 하위 요소들의 관계를 시각적으로 보여줍니다.

Matplotlib 플롯의 해부학: Figure와 Axes 계층 구조 완벽 정리

이미지 출처: https://matplotlib.org/examples/showcase/anatomy.html

마무리

Matplotlib를 효과적으로 활용하기 위해서는 Figure와 Axes의 관계를 명확히 이해하는 것이 첫걸음입니다. Figure가 전체 그림틀이라면, Axes는 그 안에 실제 그래프가 그려지는 개별 캔버스입니다. 이 계층 구조를 익혀두면 서브플롯 배치, 세부 스타일링 등 고급 시각화 작업을 훨씬 수월하게 진행할 수 있습니다.