Построение трехмерных воксельных графиков с использованием Matplotlib

PythonPythonBeginner
Практиковаться сейчас

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь создавать 3D-визуализацию вокселей с использованием библиотеки Matplotlib в Python. Воксельные графики полезны для наглядного и эстетически привлекательного представления трехмерных данных. В рамках этого практического занятия мы будем использовать функцию Axes3D.voxels для создания воксельного графика двух кубов и связи между ними.

Советы по виртуальной машине (VM)

После запуска виртуальной машины нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и приступить к практике в Jupyter Notebook.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если у вас возникнут проблемы во время обучения, не стесняйтесь обращаться к Labby. После занятия оставьте обратную связь, и мы оперативно решим проблему для вас.

Импорт необходимых библиотек

Сначала нам нужно импортировать необходимые библиотеки. В данном случае мы будем использовать Matplotlib и NumPy.

import matplotlib.pyplot as plt
import numpy as np

Подготовка координат

Далее мы подготовим координаты для нашего воксельного графика. Мы создадим трехмерную сетку точек размером 8x8x8 с использованием функции indices из библиотеки NumPy.

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()

Резюме

В этом практическом занятии (лабораторной работе) мы научились создавать трехмерный воксельный график с использованием библиотеки Matplotlib в Python. Мы подготовили координаты для графика, создали кубы и связь между ними, установили цвета для каждого объекта и построили воксельный массив с помощью функции Axes3D.voxels. Воксельные графики - это полезный способ визуализации трехмерных данных, и Matplotlib позволяет легко их создавать.