Matplotlib 를 이용한 마스크된 등고선 플롯

Beginner

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

소개

데이터 시각화에서 등고선 플롯 (contour plots) 은 3 차원 데이터를 2 차원 평면에 표시하는 데 일반적으로 사용됩니다. Matplotlib 은 Python 에서 널리 사용되는 플로팅 라이브러리로, 등고선 플롯을 포함한 다양한 유형의 플롯을 생성하는 기능을 제공합니다. 이 Lab 에서는 Matplotlib 을 사용하여 마스크된 등고선 플롯을 만드는 방법과 코너 마스크 (corner masks) 의 활성화 및 비활성화 간의 차이점을 설명하는 방법을 배우겠습니다.

VM 팁

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

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

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

필요한 라이브러리 가져오기

Matplotlib 을 사용하여 마스크된 등고선 플롯을 생성하려면 다음 라이브러리를 가져와야 합니다.

  • numpy: 대규모 다차원 배열 및 행렬을 지원하는 Python 프로그래밍 언어용 라이브러리입니다.
  • matplotlib.pyplot: 다양한 유형의 플롯을 생성하기 위한 간단한 인터페이스를 제공하는 함수의 모음입니다.
import matplotlib.pyplot as plt
import numpy as np

플로팅을 위한 데이터 생성

이 단계에서는 등고선 플롯에 플로팅할 데이터를 생성합니다. np.meshgrid() 함수를 사용하여 점의 그리드를 생성한 다음, 사인 및 코사인 함수를 사용하여 z 값을 계산합니다.

## Data to plot.
x, y = np.meshgrid(np.arange(7), np.arange(10))
z = np.sin(0.5 * x) * np.cos(0.52 * y)

데이터 마스킹

이 단계에서는 부울 마스크를 사용하여 일부 z 값을 마스킹합니다. np.zeros_like() 함수를 사용하여 mask 배열을 생성한 다음, 일부 값을 True로 설정하여 마스킹합니다.

## Mask various z values.
mask = np.zeros_like(z, dtype=bool)
mask[2, 3:5] = True
mask[3:5, 4] = True
mask[7, 2] = True
mask[5, 0] = True
mask[0, 6] = True
z = np.ma.array(z, mask=mask)

플롯 생성

이 단계에서는 contourf() 함수를 사용하여 마스크된 등고선 플롯을 생성합니다. x, y, z 배열과 함께, 생성하려는 플롯 유형에 따라 corner_mask 인수를 True 또는 False로 설정하여 이 함수에 전달합니다.

corner_masks = [False, True]
fig, axs = plt.subplots(ncols=2)
for ax, corner_mask in zip(axs, corner_masks):
    cs = ax.contourf(x, y, z, corner_mask=corner_mask)
    ax.contour(cs, colors='k')
    ax.set_title(f'{corner_mask=}')

    ## Plot grid.
    ax.grid(c='k', ls='-', alpha=0.3)

    ## Indicate masked points with red circles.
    ax.plot(np.ma.array(x, mask=~mask), y, 'ro')

plt.show()

결과 해석

이 단계에서는 마스크된 등고선 플롯의 결과를 해석합니다. corner_mask 매개변수가 플롯의 모서리 점을 마스킹할지 여부를 제어하는 것을 관찰할 수 있습니다. corner_maskTrue로 설정되면 등고선 플롯의 모서리가 마스킹되고, False로 설정되면 마스킹되지 않습니다. 또한 마스크된 점은 빨간색 원으로 표시됩니다.

요약

이 랩에서는 Matplotlib 을 사용하여 마스크된 등고선 플롯을 생성하는 방법을 배웠습니다. 먼저 필요한 라이브러리를 가져온 다음 플롯할 데이터를 생성했습니다. 그런 다음 부울 마스크를 사용하여 일부 z 값을 마스킹하고, contourf() 함수를 사용하여 등고선 플롯을 생성했습니다. 마지막으로 결과를 해석하고 코너 마스크가 활성화 및 비활성화될 때의 차이점을 관찰했습니다.