Scripting Layer vs. Artist Layer
Matplotlib는
Scripting Layer
와 (이를 이용시 scripting style 이라고 불림)Artist Layer
라는 (이를 이용시 object-oriented style 이라고 불림)
두 가지 주요 인터페이스를 plot
을 그리기 위해 제공함.
이 외에 backend layer를 가지는데 이는 사용자가 plots를 그릴 때 이용하는 인터페이스가 아님.
2023.07.20 - [Python/matplotlib] - [Python] matplotlib : backend란
참고: Matplotlib에서 plot
이란
Matplotlib에서 plot
은 data visualization를 의미하며, 다양한 형태의
- Graph와
- Chart를
만드는 과정 또는 그 결과물을 가르킴.
2024.01.22 - [Python/matplotlib] - [matplotlib] Visualization: Graph, Chart, Diagram, Figure
Scripting Layer
Scripting Layer
는 간단하고 빠르게 plot
을 작성할 수 있는 고수준의 인터페이스.
- 이 인터페이스는 MATLAB과 유사한 방식으로 설계되어,
- 특히 간단한
plot
을 만들고 데이터를 visualization하는 데 매우 유용. - 주로
pyplot
모듈을 통해 코드가 이루어짐.
특징:
- 간단한 사용법: 몇 줄의 코드로
plot
을 생성. - 상태 기반: 내부 상태를 유지하며, 함수 호출에 따라
plot
이 점진적으로 구축됨. - 빠른 플로팅: 간단한 visualization를 빠르게 할 수 있습니다.
예제 코드:
import matplotlib.pyplot as plt
# 데이터 준비
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 그래프 생성
plt.plot(x, y)
# 그래프 제목 추가
plt.title('Simple Line Plot')
# x축, y축 레이블 추가
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
# 그래프 출력
plt.show()
함수 설명
plt.plot(x, y)
: x와 y 데이터를 사용하여 line graph를 그림.plt.title('title')
: 그래프의 title을 설정.plt.xlabel('label')
,plt.ylabel('label')
: x축과 y축의 label을 설정.plt.show()
: graph를 화면에 출력.
Artist Layer
Artist Layer
는 보다 세밀하고 복잡한 plot
을 작성할 수 있는 저수준의 인터페이스.
- 이 인터페이스는 Matplotlib의 핵심 구조를 이루며,
plot
의 각 구성 요소를 개별적으로 제어할 수 있는 방법을 제공함. Figure
,Axes
,Axis
,Line2D
와 같은 객체를 직접 다룸.
2023.07.14 - [Python/matplotlib] - [Python] matplotlib 의 계층구조 및 Container : Figure, Axes, Axis
특징:
- 세밀한 제어:
plot
의 각 구성 요소를 직접 제어 가능. - 객체 지향적:
plot
의 각 요소가object
로 표현되며, 이들object
의 attributes과 methods를 통해plot
을 구성. - 유연성: 복잡한 visualization를 생성하고 customize 가능.
예제 코드:
import matplotlib.pyplot as plt
# 데이터 준비
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# Figure와 Axes 객체 생성
fig, ax = plt.subplots()
# 그래프 생성
line, = ax.plot(x, y, 'r-') # 'r-' means red solid line
# 그래프 제목 추가
ax.set_title('Simple Line Plot')
# x축, y축 레이블 추가
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
# 그래프 출력
plt.show()
객체 설명
Figure
: 모든plot
의container
. 하나의Figure
는 여러Axes
객체를 포함할 수 있음.Axes
: 실제plot
을 포함하는 객체.Line2D
:Axes
에 의해 관리되는 2D line 객체.Text
: 그래프의 text 객체로, 제목, 축 레이블, 주석 등을 포함.
요약
- Scripting Layer는 간단한 플롯을 빠르게 작성할 수 있는 고수준 인터페이스로,
pyplot
모듈을 사용. - Artist Layer는 플롯의 각 요소를 세밀하게 제어할 수 있는 저수준 인터페이스로, 객체 지향적 접근 방식을 사용.
Scripting Style | OOP Style |
pyplot 함수를 통해 간단하게 그래프를 작성. | Figure와 Axes 객체를 명시적으로 생성하여 세밀한 제어가 가능. |
빠르고 간편하게 그래프를 그릴 수 있음. | 복잡한 레이아웃과 여러 개의 plot을 다룰 때 유용. |
초보자에게 적합. | 고급 사용자에게 적합. |
plt.plot() , plt.title() , plt.xlabel() , plt.ylabel() , plt.show() 등을 사용. |
ax.plot() , ax.set_title() , ax.set_xlabel() , ax.set_ylabel() , plt.show() 등을 사용. |
같이 읽어보면 좋은 자료들
2024.03.04 - [Python/matplotlib] - [matplotlib] matplotlib란
2023.07.14 - [Python/matplotlib] - [Python] matplotlib : Styling Artists and Labeling Plots
728x90
'Python > matplotlib' 카테고리의 다른 글
[matplotlib] Object Oriented Style Tutorial (1) | 2024.06.03 |
---|---|
[matplotlib] Tutorial: Scripting Style (0) | 2024.06.03 |
[Etc] Anti-Grain Geometry (AGG) (0) | 2024.04.29 |
[matplotlib] patches: 도형 그리기. (0) | 2024.03.18 |
[matplotlib] matplotlib란 (0) | 2024.03.04 |