소개
Matplotlib 는 Python 을 위한 데이터 시각화 라이브러리입니다. Python 에서 정적, 애니메이션, 대화형 시각화를 생성하기 위한 다양한 도구를 제공합니다. 이 랩에서는 Matplotlib 의 pcolormesh 및 pcolor 함수를 사용하여 2D 그리드를 시각화하는 방법을 배웁니다.
VM 팁
VM 시작이 완료되면 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 액세스하십시오.
때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.
학습 중에 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 즉시 해결해 드리겠습니다.
필요한 라이브러리 가져오기
먼저, 다음 코드 블록을 실행하여 필요한 라이브러리인 Matplotlib 와 NumPy 를 가져와야 합니다.
import matplotlib.pyplot as plt
import numpy as np
시각화를 위한 데이터 생성
다음으로, 시각화에 사용할 2D 그리드를 생성합니다. NumPy 의 meshgrid 함수를 사용하여 그리드를 생성할 수 있습니다. meshgrid 함수는 그리드 점의 좌표를 나타내는 두 개의 벡터 x와 y가 주어지면 점의 그리드를 생성합니다. 다음 코드 블록을 사용하여 5x5 점의 그리드를 생성합니다.
nrows = 5
ncols = 5
x = np.arange(ncols + 1)
y = np.arange(nrows + 1)
X, Y = np.meshgrid(x, y)
Z = X + Y
Flat Shading (플랫 쉐이딩)
Matplotlib 의 pcolormesh 함수는 2D 그리드를 시각화할 수 있습니다. 가장 적은 가정을 가진 그리드 사양은 shading='flat'이며, 그리드의 각 차원에서 데이터보다 하나 더 큰 경우, 즉 (M+1, N+1) 형태를 갖는 경우입니다. 이 경우, X와 Y는 Z의 값으로 색칠된 사변형의 모서리를 지정합니다. 다음 코드 블록을 사용하여 그리드를 시각화할 수 있습니다.
fig, ax = plt.subplots()
ax.pcolormesh(X, Y, Z, shading='flat', cmap='viridis')
ax.set_title('Flat Shading')
plt.show()
Flat Shading, Same Shape Grid (플랫 쉐이딩, 동일 형태 그리드)
그리드가 각 차원에서 데이터와 동일한 형태를 갖는 경우, shading='flat'을 사용할 수 없습니다. 역사적으로 Matplotlib 는 이 경우 Matlab 의 동작과 일치시키기 위해 Z의 마지막 행과 열을 조용히 삭제했습니다. 이 동작이 여전히 필요한 경우, 마지막 행과 열을 수동으로 삭제하십시오. 다음 코드 블록을 사용하여 그리드를 시각화할 수 있습니다.
fig, ax = plt.subplots()
ax.pcolormesh(x, y, Z[:-1, :-1], shading='flat', cmap='viridis')
ax.set_title('Flat Shading, Same Shape Grid')
plt.show()
Nearest Shading, Same Shape Grid (가장 가까운 쉐이딩, 동일 형태 그리드)
일반적으로, X, Y, 그리고 Z를 모두 동일한 형태로 만들 때, 데이터의 행과 열을 삭제하는 것은 사용자가 의도하는 바가 아닙니다. 이 경우, Matplotlib 는 shading='nearest'를 허용하며, 색칠된 사변형을 그리드 포인트에 중심을 둡니다. shading='nearest'와 함께 올바르지 않은 형태의 그리드가 전달되면 오류가 발생합니다. 다음 코드 블록을 사용하여 그리드를 시각화할 수 있습니다.
fig, ax = plt.subplots()
ax.pcolormesh(X, Y, Z, shading='nearest', cmap='viridis')
ax.set_title('Nearest Shading, Same Shape Grid')
plt.show()
Auto Shading (자동 쉐이딩)
사용자가 코드가 자동으로 사용할 쉐이딩을 선택하도록 하려는 경우, shading='auto'는 X, Y, 그리고 Z의 형태를 기반으로 flat 또는 nearest 쉐이딩을 사용할지 결정합니다. 다음 코드 블록을 사용하여 그리드를 시각화할 수 있습니다.
fig, ax = plt.subplots()
ax.pcolormesh(x, y, Z, shading='auto', cmap='viridis')
ax.set_title('Auto Shading')
plt.show()
Gouraud Shading (고라우드 쉐이딩)
Gouraud shading도 지정할 수 있으며, 여기서 사변형의 색상은 그리드 포인트 사이에서 선형적으로 보간됩니다. X, Y, Z의 형태는 동일해야 합니다. 다음 코드 블록을 사용하여 그리드를 시각화할 수 있습니다.
fig, ax = plt.subplots()
ax.pcolormesh(X, Y, Z, shading='gouraud', cmap='viridis')
ax.set_title('Gouraud Shading')
plt.show()
요약
이 랩에서는 Matplotlib 에서 pcolormesh 및 pcolor 함수를 사용하여 2D 그리드를 시각화하는 방법을 배웠습니다. flat, nearest, auto, 그리고 gouraud를 포함한 다양한 쉐이딩 옵션에 대해 배웠습니다. 또한 NumPy 의 meshgrid 함수를 사용하여 2D 그리드를 생성하는 방법도 배웠습니다.