본문 바로가기

프로그래밍 언어 (プログラミング言語)/파이썬

컴퓨터 비전과 딥러닝 P255(Matplotlib 관련 코드 설명)

(아래의 코드 블럭을 읽기 전에 먼저 이 3가지 용어에 대해 이해하고 가자)

Plotting(플로팅) : 데이터를 시각적으로 표현하는 과정 또는 방법을 가리킵니다.

데이터를 그래프나 차트 등의 형태로 시각화하여 분석하거나 전달하는 것을 말합니다.

Plot(플롯): 데이터를 시각화하기 위한 그래프나 차트 등를 의미합니다.

선 그래프, 산점도, 히스토그램 등 다양한 형태의 플롯이 있습니다. 각각의 플롯은 데이터의 특성에 따라 적합한 시각화 방

법을 선택하여 사용합니다.

Figure(피규어): Plot이 그려지는 영역을 가리킵니다.

Figure는 하나 이상의 Plot을 포함할 수 있으며, Plot의 배치 및 크기를 조절할 수 있습니다.

보통 하나의 Figure 안에 여러 개의 Sub Plot(서브 그림)을 생성하여 다양한 시각화를 한 번에 표시할 수 있습니다.

// 생략

# Plotting에 특정 크기의 figure를 설정합니다.
plt.figure(figsize=(24,3))

# figure에 제목을 추가합니다.
plt.suptitle('MNIST',fontsize=30) # 코드 블럭 아래에 코드 설명을 상세히 함. 

# 훈련 세트의 처음 10개 이미지에 대해 반복합니다.
for i in range(10):

    # figure 내에 서브플롯을 만들어 각 이미지를 표시합니다.
    plt.subplot(1,10,i+1) # 이 코드 설명은 그림 코드 블럭 아래에서 상세히 설명을 함
    
    # 여기서부터 아래는 코드 라인 13에서 생성된 Sub Plot에 설정되는 것이다.
    # [해당 서브 플롯]에 회색조 컬러맵을 사용하여 이미지를 표시합니다.
    plt.imshow(x_train[i],cmap='gray') 
    
    # [해당 서브 플롯]에에서 x와 y 눈금을 제거합니다.
    plt.xticks([]);plt.yticks([])
    
    # 해당하는 라벨을 나타내는 [해당 서브 플롯]에 제목을 추가합니다.
    plt.title(str(y_train[i]),fontsize=30)
    
 # 현재 플롯을 표시합니다.
 plt.show()

plt.suptitle('MNIST',fontsize=30)

-> sup는 "superior"의 약어로, Plot의 제일 위에 위치하는 제목을 설정하는 함수.

 

 

plt.suptitle('MNIST',fontsize=30)

 

plt.subplot(1,10,i+1)

->이 코드는 Matplotlib의 subplot을 생성하는 부분입니다.

Matplotlib에서 subplot은 하나의 그림(figure) 안에 여러 개의 작은 그림(subplot)를 배열 형태로 배치할 때 사용됩니다.

일반적으로 subplot은 행(row)과 열(column)의 형태로 배치됩니다.

여기서 plt.subplot(1,10,i+1)은 다음을 의미한다.

  • 1은 행(row)의 개수를 나타냅니다. 즉, 1개의 행에 subplot을 배치하겠다는 의미입니다.
  • 10은 열(column)의 개수를 나타냅니다. 즉, 총 10개의 subplot이 있을 것이라는 의미입니다.
  • i+1은 현재 subplot의 위치를 나타냅니다. i는 반복문 변수로, 현재 반복되고 있는 값에 따라 0부터 9까지의 값을 가지게 됩니다. 하지만 subplot의 인덱스는 1부터 시작해야 하므로 i+1을 사용하여 인덱스를 조정합니다.

따라서 이 코드는 figure 내에 1행 10열로 총 10개의 subplot을 생성하고, 각 subplot의 위치를 반복문을 통해 순차적으로 지

정하는 역할을 합니다.