Matplotlib 을 이용한 3D 복셀 플롯

Beginner

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

소개

이 랩에서는 Python 의 Matplotlib 라이브러리를 사용하여 3D 복셀 플롯을 생성하는 과정을 안내합니다. 복셀 플롯은 3D 데이터를 명확하고 미적으로 보기 좋게 시각화하는 데 유용합니다. 이 랩에서는 Axes3D.voxels 함수를 사용하여 두 개의 큐브와 그 사이의 링크를 복셀 플롯으로 만들 것입니다.

VM 팁

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

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

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

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

먼저, 필요한 라이브러리를 가져와야 합니다. 이 경우 Matplotlib 와 NumPy 를 사용합니다.

import matplotlib.pyplot as plt
import numpy as np

좌표 준비

다음으로, 복셀 플롯에 대한 좌표를 준비합니다. NumPy 의 indices 함수를 사용하여 8x8x8 그리드 점을 생성합니다.

x, y, z = np.indices((8, 8, 8))

큐브 생성 및 연결

이제 두 개의 큐브와 그 사이의 연결을 생성합니다. 세 개의 부울 배열을 정의하여 이를 수행하고, 이를 단일 부울 배열로 결합합니다. 처음 두 배열은 큐브의 위치를 정의하고, 세 번째 배열은 연결의 위치를 정의합니다.

cube1 = (x < 3) & (y < 3) & (z < 3)
cube2 = (x >= 5) & (y >= 5) & (z >= 5)
link = abs(x - y) + abs(y - z) + abs(z - x) <= 2

voxelarray = cube1 | cube2 | link

색상 설정

이제 복셀 플롯의 각 객체에 대한 색상을 설정합니다. 3 단계에서 생성한 부울 배열과 동일한 모양의 빈 배열을 생성한 다음, 각 객체의 위치에 따라 색상을 설정합니다.

colors = np.empty(voxelarray.shape, dtype=object)
colors[link] = 'red'
colors[cube1] = 'blue'
colors[cube2] = 'green'

복셀 배열 플롯

마지막으로, Axes3D.voxels 함수를 사용하여 지정된 색상으로 복셀 배열을 플롯할 수 있습니다.

ax = plt.figure().add_subplot(projection='3d')
ax.voxels(voxelarray, facecolors=colors, edgecolor='k')

plt.show()

요약

이 랩에서는 Python 의 Matplotlib 라이브러리를 사용하여 3D 복셀 플롯을 생성하는 방법을 배웠습니다. 플롯의 좌표를 준비하고, 큐브와 링크를 생성하고, 각 객체의 색상을 설정했으며, Axes3D.voxels 함수를 사용하여 복셀 배열을 플롯했습니다. 복셀 플롯은 3D 데이터를 시각화하는 유용한 방법이며, Matplotlib 을 사용하면 쉽게 생성할 수 있습니다.