欢迎访问宙启技术站
智能推送

如何使用matplotlib.collections绘制3D散点图

发布时间:2023-12-24 02:34:27

使用matplotlib.collections绘制3D散点图主要依赖于以下几个步骤:

1. 导入所需的库和模块

2. 生成散点的坐标数据

3. 创建3D坐标轴对象

4. 创建散点集合对象

5. 添加标题、轴标签和图例

6. 显示图形

下面将通过一个具体的例子来演示如何使用matplotlib.collections库绘制3D散点图。

例子:

假设我们有一些随机生成的球体坐标数据,我们希望通过3D散点图来显示这些球体在空间中的分布情况。

1. 首先,我们需要导入所需的库和模块:

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

2. 生成散点的坐标数据:

# 随机生成球体的坐标数据
np.random.seed(123)
n = 1000
radius = np.random.uniform(low=0, high=10, size=n)
theta = np.random.uniform(low=0, high=2*np.pi, size=n)
phi = np.random.uniform(low=0, high=np.pi, size=n)

x = radius * np.sin(theta) * np.cos(phi)
y = radius * np.sin(theta) * np.sin(phi)
z = radius * np.cos(theta)

在这个例子中,我们通过随机生成球体的半径、方位角(theta)和极角(phi)来生成球体的坐标数据。

3. 创建3D坐标轴对象:

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

4. 创建散点集合对象:

# 创建散点集合对象
scatter = ax.scatter(x, y, z, c='r')

在这个例子中,我们使用红色来表示散点的颜色。

5. 添加标题、轴标签和图例:

# 添加标题、轴标签和图例
ax.set_title('3D Scatter Plot')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.legend([scatter], ['Scatter'])

6. 显示图形:

# 显示图形
plt.show()

将以上所有的代码片段整合到一起,就可以生成一个3D散点图来展示球体的分布情况。

完整的代码如下所示:

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

# 生成散点的坐标数据
np.random.seed(123)
n = 1000
radius = np.random.uniform(low=0, high=10, size=n)
theta = np.random.uniform(low=0, high=2*np.pi, size=n)
phi = np.random.uniform(low=0, high=np.pi, size=n)

x = radius * np.sin(theta) * np.cos(phi)
y = radius * np.sin(theta) * np.sin(phi)
z = radius * np.cos(theta)

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

# 创建散点集合对象
scatter = ax.scatter(x, y, z, c='r')

# 添加标题、轴标签和图例
ax.set_title('3D Scatter Plot')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.legend([scatter], ['Scatter'])

# 显示图形
plt.show()

运行以上的代码,就可以在窗口中显示一个3D散点图,该图展示了球体在空间中的分布情况。