📜  绘制 3d python (1)

📅  最后修改于: 2023-12-03 15:11:38.741000             🧑  作者: Mango

绘制3D Python

简介

在Python中,我们可以使用不同的库来绘制3D图像。在本文中,我们将重点介绍matplotlibplotly库。

Matplotlib

Matplotlib是一个用于绘制2D图表和3D图表的Python库。它包括许多模块,其中mplot3d模块专门用于绘制3D图表。

首先,我们需要导入库和数据。在这个例子中,我们将使用numpy库和生成的随机数据。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 随机生成数据
np.random.seed(42)
x = np.random.normal(size=500)
y = np.random.normal(size=500)
z = np.random.normal(size=500)

然后,我们可以使用Axes3D类来创建3D图表,并使用scatter方法绘制散点图。

# 创建3D坐标轴
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 绘制散点图
ax.scatter(x, y, z)

# 设置坐标轴标签
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')

# 显示图表
plt.show()

此代码段将绘制一个3D散点图,如下所示。

matplotlib_3d_scatter.png

Plotly

Plotly是一个交互式可视化库,可以用于创建各种图表,包括3D图表。它允许用户可以对3D图表进行缩放、旋转等操作,可以更好地展示数据。

首先,我们需要安装plotly库,并导入库和生成相同的数据。

!pip install plotly==5.5.0
import plotly.graph_objs as go

# 随机生成数据
np.random.seed(42)
x = np.random.normal(size=500)
y = np.random.normal(size=500)
z = np.random.normal(size=500)

然后,我们可以使用go.Scatter3d类创建一个3D散点图,并设置layout参数来设置图表属性。

# 创建3D散点图
fig = go.Figure(data=[go.Scatter3d(x=x, y=y, z=z, mode='markers', marker=dict(size=5))])

# 设置图表属性
fig.update_layout(scene=dict(xaxis_title='X Label',
                             yaxis_title='Y Label',
                             zaxis_title='Z Label'),
                  width=700,
                  height=500)

# 显示图表
fig.show()

此代码段将绘制一个交互式3D散点图,如下所示。

plotly_3d_scatter.gif

结论

在Python中,绘制3D图像是非常容易的,只需要使用合适的库和正确的数据。这种可视化技术可以帮助人们更好地理解数据,并支持数据分析和决策过程。