📅  最后修改于: 2023-12-03 15:06:48.597000             🧑  作者: Mango
Matplotlib 是一个数据可视化库,支持二维、三维图像绘制,能够实现条形图、散点图、饼图等多种类型的图形展示。本文主要介绍如何使用 Matplotlib 绘制 3D 散点图。
在绘制 3D 散点图前,需要准备数据集。以下为示例数据:
import numpy as np
# 生成随机数据
n = 100 # 数据个数
x = np.random.randint(0, 100, size=n) # x 坐标
y = np.random.randint(0, 100, size=n) # y 坐标
z = np.random.randint(0, 100, size=n) # z 坐标
其中,x
、y
、z
分别表示三维散点图中的 x、y、z 坐标。
接下来,我们使用 Matplotlib 绘制 3D 散点图。具体实现如下:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 创建 3D 图形对象
fig = plt.figure()
ax = Axes3D(fig)
# 绘制散点图
ax.scatter(x, y, z, c='r', marker='o')
# 设置坐标轴标题
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
# 显示图形
plt.show()
以上代码中,我们首先创建 3D 图形对象,并使用 Axes3D
类设置其属性。接着,使用 scatter
方法绘制散点图,其中 c
参数指定颜色,marker
参数指定标记类型。最后,我们设置坐标轴标题,并显示图形。
运行以上代码,即可得到如下 3D 散点图:
有时候,我们需要在同一张图中绘制多组散点图。这时,可以通过多次调用 scatter
方法实现。以下是示例代码:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 生成随机数据
n = 100 # 数据个数
x1 = np.random.randint(0, 100, size=n) # x 坐标
y1 = np.random.randint(0, 100, size=n) # y 坐标
z1 = np.random.randint(0, 100, size=n) # z 坐标
x2 = np.random.randint(0, 100, size=n) # x 坐标
y2 = np.random.randint(0, 100, size=n) # y 坐标
z2 = np.random.randint(0, 100, size=n) # z 坐标
# 创建 3D 图形对象
fig = plt.figure()
ax = Axes3D(fig)
# 绘制散点图
ax.scatter(x1, y1, z1, c='r', marker='o')
ax.scatter(x2, y2, z2, c='b', marker='^')
# 设置坐标轴标题
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
# 显示图形
plt.show()
以上代码中,我们生成了两组随机数据,并分别传入 scatter
方法进行绘制。绘制时,可以通过 c
和 marker
参数设置每组散点图的颜色和标记类型。最终,我们设置好坐标轴标题并展示图形。
运行以上代码,即可得到如下 3D 散点图:
以上就是使用 Matplotlib 在 Python 中绘制 3D 散点图的基本方法。通过多次调用 scatter
方法,还可以绘制更多组散点图,实现更加丰富的数据可视化效果。