Изучение 3D-графики в Python: подробное руководство с примерами кода

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

  1. Matplotlib:
    Matplotlib — это широко используемая библиотека построения графиков на Python, предлагающая полный набор функций для построения 2D- и 3D-график. Чтобы создать трехмерный график с помощью Matplotlib, мы можем использовать набор инструментов mplot3d. Вот фрагмент кода, который поможет вам начать:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d
# Create data
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X2 + Y2))
# Create a 3D plot
fig = plt.figure()
ax = plt.axes(projection='3d')
ax.plot_surface(X, Y, Z, cmap='viridis')
# Customize the plot
ax.set_title('3D Plot using Matplotlib')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
# Show the plot
plt.show()
  1. Plotly:
    Plotly — еще одна популярная библиотека для создания интерактивных и визуально привлекательных трехмерных графиков. Он обеспечивает интуитивно понятный интерфейс и поддерживает различные типы трехмерных графиков, включая графики поверхности, диаграммы рассеяния и сетчатые графики. Вот пример создания трехмерного графика поверхности с помощью Plotly:
import plotly.graph_objects as go
# Create data
x = [1, 2, 3, 4, 5]
y = [1, 2, 3, 4, 5]
z = [[1, 1, 1, 1, 1],
     [2, 2, 2, 2, 2],
     [3, 3, 3, 3, 3],
     [4, 4, 4, 4, 4],
     [5, 5, 5, 5, 5]]
# Create a 3D surface plot
fig = go.Figure(data=[go.Surface(x=x, y=y, z=z)])
# Customize the plot
fig.update_layout(title='3D Surface Plot using Plotly',
                  scene=dict(xaxis_title='X',
                             yaxis_title='Y',
                             zaxis_title='Z'))
# Show the plot
fig.show()
  1. Seaborn:
    Хотя Seaborn в первую очередь известен своими возможностями статистической визуализации, он также поддерживает базовое трехмерное построение графиков. Seaborn хорошо подходит для визуализации простых трехмерных отношений с помощью точечных диаграмм. Вот пример:
import seaborn as sns
# Create data
x = [1, 2, 3, 4, 5]
y = [1, 2, 3, 4, 5]
z = [1, 4, 9, 16, 25]
# Create a 3D scatter plot
sns.scatterplot(x=x, y=y, z=z)
# Customize the plot
plt.title('3D Scatter Plot using Seaborn')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
  1. Mayavi:
    Mayavi — это мощная библиотека, специально разработанная для 3D-визуализации. Он предоставляет богатый набор инструментов для создания расширенных 3D-графиков, включая графики поверхности, объемную визуализацию и анимацию. Вот пример создания трехмерного графика поверхности с помощью Mayavi:
from mayavi import mlab
# Create data
x, y = np.mgrid[-5:5:100j, -5:5:100j]
z = np.sin(np.sqrt(x2 + y2))
# Create a 3D surface plot
mlab.figure('3D Surface Plot using Mayavi')
mlab.surf(x, y, z)
# Customize the plot
mlab.xlabel('X')
mlab.ylabel('Y')
mlab.zlabel('Z')
# Show the plot
mlab.show()
  1. PyVista:
    PyVista — это современная библиотека 3D-графики, созданная на базе VTK (Visualization Toolkit). Он обеспечивает высококачественные и интерактивные возможности 3D-визуализации. Вот пример создания 3D-графика с помощью PyVista:
import pyvista as pv
# Create data
x = [1, 2, 3, 4, 5]
y = [1, 2, 3, 4, 5]
z = [1, 4, 9, 16, 25]
# Create a PyVista mesh
mesh = pv.StructuredGrid()
mesh.points = pv.grid_from_sph_coords(radius=z, theta=y, phi=x)
# Create a 3D plot
p = pv.Plotter()
p.add_mesh(mesh, scalars=z, cmap='viridis')
# Customize the plot
p.set_title('3D Plot using PyVista')
p.set_xlabel('X')
p.set_ylabel('Y')
p.set_zlabel('Z')
# Show the plot
p.show()

В этой статье мы рассмотрели различные методы создания 3D-графиков в Python с использованием разных библиотек. Мы рассмотрели такие популярные варианты, как Matplotlib, Plotly, Seaborn, Mayavi и PyVista, каждый из которых предлагает уникальные функции и возможности. Используя эти инструменты, вы сможете раскрыть возможности 3D-визуализации и воплотить свои данные в жизнь в визуально привлекательной форме.