Matplotlib QuadMesh 플롯 튜토리얼

Beginner

This tutorial is from open-source community. Access the source code

소개

이 튜토리얼은 Matplotlib 라이브러리를 사용하여 QuadMesh 플롯을 생성하는 방법을 안내합니다. QuadMesh 는 pcolor 함수의 더 빠른 일반화 버전이지만, 몇 가지 제한 사항이 있습니다. 이 튜토리얼의 데모는 마스크된 데이터를 사용한 QuadMesh 의 버그를 보여줍니다.

VM 팁

VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접근하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한 사항으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.

필요한 라이브러리 임포트

import numpy as np
from matplotlib import pyplot as plt

데이터 정의

n = 12
x = np.linspace(-1.5, 1.5, n)
y = np.linspace(-1.5, 1.5, n * 2)
X, Y = np.meshgrid(x, y)
Qx = np.cos(Y) - np.cos(X)
Qz = np.sin(Y) + np.sin(X)
Z = np.sqrt(X**2 + Y**2) / 5
Z = (Z - Z.min()) / (Z.max() - Z.min())
Zm = np.ma.masked_where(np.abs(Qz) < 0.5 * np.max(Qz), Z)

플롯 생성

fig, axs = plt.subplots(nrows=1, ncols=3)
axs[0].pcolormesh(Qx, Qz, Z, shading='gouraud')
axs[0].set_title('Masked 값 없이')
cmap = plt.colormaps[plt.rcParams['image.cmap']].with_extremes(bad='y')
axs[1].pcolormesh(Qx, Qz, Zm, shading='gouraud', cmap=cmap)
axs[1].set_title('Masked 값 포함')
axs[2].pcolormesh(Qx, Qz, Zm, shading='gouraud')
axs[2].set_title('Masked 값 포함')
fig.tight_layout()
plt.show()

설명

  • 단계 2: 데이터는 numpy 배열을 사용하여 정의됩니다. X 및 Y 배열은 meshgrid 를 생성하는 데 사용되며, 이는 Qx 및 Qz 값을 계산하는 데 사용됩니다. 그런 다음 Z 값은 Qx 및 Qz 값을 기반으로 계산됩니다. Zm 배열은 Qz 의 절대값이 Qz 의 최대값의 0.5 배 미만인 값을 마스킹하여 생성됩니다.
  • 단계 3: subplots 메서드를 사용하여 세 개의 서브플롯이 있는 그림이 생성됩니다. pcolormesh 함수는 각 서브플롯에 대한 QuadMesh 플롯을 생성하는 데 사용됩니다. 첫 번째 서브플롯은 마스크된 값이 없는 플롯을 보여줍니다. 두 번째 서브플롯은 마스크된 값이 있는 플롯과 마스크된 영역이 노란색인 사용자 정의 colormap 을 보여줍니다. 세 번째 서브플롯은 마스크된 값이 있는 플롯과 마스크된 영역이 투명한 기본 colormap 을 보여줍니다.
  • 단계 4: QuadMesh 플롯은 2D 데이터를 시각화하는 데 유용한 도구입니다. 이 튜토리얼에서는 pcolormesh 함수를 사용하여 QuadMesh 플롯을 생성하고 플롯에서 마스크된 데이터를 처리하는 방법을 배웠습니다.

요약

이 튜토리얼은 Matplotlib 라이브러리를 사용하여 QuadMesh 플롯을 생성하는 단계별 가이드를 제공했습니다. 플롯에서 마스크된 데이터를 처리하는 방법과 마스크된 영역에 대한 colormap 을 사용자 정의하는 방법을 배웠습니다. QuadMesh 플롯은 2D 데이터를 시각화하는 강력한 도구이며, 특히 과학적 응용 분야에 유용합니다.