본문 바로가기
Big Data/Visualization

OOP Style / Matlab Style

by Wikinist 2023. 8. 8.

객체 지향 프로그래밍 (OOP) 스타일

Matplotlib는 파이썬의 데이터 시각화 라이브러리로, 객체 지향 프로그래밍 (OOP) 스타일로 그래프를 그릴 수 있습니다. OOP 스타일로 그래프를 그리는 가장 일반적인 방법은 Figure와 Axes 객체를 사용하는 것입니다. 여기서 Figure는 전체 그림을 나타내며, Axes는 실제 그래프와 축을 포함하는 개별 subplot입니다. 아래는 OOP 방식으로 Matplotlib 그래프를 그리는 예제입니다.

예제 1

import matplotlib.pyplot as plt
import numpy as np

# 데이터 생성
x = np.linspace(0, 10, 100)
y = np.sin(x)

# Figure와 Axes 객체 생성
fig, ax = plt.subplots()

# 그래프 그리기
ax.plot(x, y, label='sin(x)')
ax.set_title('Sine Function')
ax.set_xlabel('x')
ax.set_ylabel('sin(x)')
ax.legend()

# 그래프 보이기
plt.show()

이 예제에서는 다음과 같은 단계를 따릅니다:

  1. 먼저 matplotlib.pyplot 모듈을 임포트합니다.
  2. 데이터를 생성합니다. 이 예제에서는 numpy를 사용하여 x 값 범위를 생성하고 그에 따른 sin 함수 값을 계산합니다.
  3. plt.subplots() 함수를 사용하여 Figure와 Axes 객체를 생성합니다. subplots() 함수는 행 수와 열 수를 인자로 받아서 여러 개의 subplot을 가지는 Figure 객체와 Axes 객체들을 생성합니다.
  4. Axes 객체를 사용하여 그래프를 그립니다. plot() 함수로 데이터를 그리고, set_title(), set_xlabel(), set_ylabel() 등의 메서드로 그래프의 제목과 축 레이블을 설정합니다. legend() 메서드로 범례를 추가합니다.
  5. plt.show() 함수를 호출하여 그래프를 화면에 표시합니다.

이 예제를 실행하면 Matplotlib 창이 열리고, sin 함수의 그래프가 OOP 스타일로 그려집니다. 이와 같은 방식으로 여러 개의 subplot을 생성하거나 다양한 그래프 요소를 추가할 수 있습니다.

예제 2

아래는 figure() 함수를 사용한 예제입니다.

python
Copy code

import matplotlib.pyplot as plt
import numpy as np

# 데이터 생성
x = np.linspace(0, 10, 100)
y = np.sin(x)

# Figure 객체 생성
fig = plt.figure()

# Axes 객체 추가
ax = fig.add_subplot(1, 1, 1)

# 그래프 그리기
ax.plot(x, y, label='sin(x)')
ax.set_title('Sine Function')
ax.set_xlabel('x')
ax.set_ylabel('sin(x)')
ax.legend()

# 그래프 보이기
plt.show()

위 예제에서 figure() 함수로 Figure 객체를 생성하고, add_subplot() 메서드로 Axes 객체를 추가합니다. add_subplot() 메서드는 행, 열, 인덱스 값을 받아서 해당 위치에 Axes 객체를 생성합니다. 이 경우에는 하나의 subplot만 생성하므로 행과 열 값은 각각 1이며, 인덱스 값도 1로 설정합니다. 이후의 단계는 이전 예제와 동일하게 진행됩니다.

결과적으로 Matplotlib 창이 열리고, sin 함수의 그래프가 figure() 함수와 add_subplot() 메서드를 사용하여 그려집니다.

Matlab 스타일

Matplotlib은 MATLAB 스타일의 인터페이스도 지원합니다. MATLAB 스타일은 Matplotlib의 초기 버전과 호환성을 유지하기 위해 제공되는 스타일입니다. 여기서는 MATLAB 스타일을 사용하여 그래프를 그리는 예제를 설명하겠습니다

import matplotlib.pyplot as plt
import numpy as np

# 데이터 생성
x = np.linspace(0, 10, 100)
y = np.sin(x)

# MATLAB 스타일 그래프 그리기
plt.figure()  # Figure 생성

# 그래프 그리기
plt.plot(x, y, label='sin(x)')
plt.title('Sine Function')
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.legend()

# 그래프 보이기
plt.show()

위 예제에서는 plt 모듈의 함수를 직접 호출하여 MATLAB 스타일로 그래프를 그립니다.

  1. plt.figure() 함수로 Figure 객체를 생성합니다.
  2. plt.plot() 함수로 데이터를 그리고 그래프의 속성을 설정합니다. 여기서 plt.title(), plt.xlabel(), plt.ylabel() 함수로 그래프의 제목과 축 레이블을 설정하고, plt.legend() 함수로 범례를 추가합니다.
  3. plt.show() 함수로 그래프를 화면에 표시합니다.

MATLAB 스타일은 단순하고 간결한 구문을 사용하여 그래프를 그리는 데 유용할 수 있습니다. 하지만 객체 지향 방식과 달리 여러 개의 subplot을 조작하거나 고급 기능을 사용하는 것이 제한될 수 있습니다.

해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.

'Big Data > Visualization' 카테고리의 다른 글

matplotlib 그래프 종류  (0) 2023.08.11
Matplotlib Locator  (0) 2023.08.10
pd.options.display  (0) 2023.08.09
Matplolib 함수  (0) 2023.08.04
plt.figure()  (0) 2023.08.04