📜  使用 Matplotlib 在Python中绘制 3D 散点图(1)

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

使用 Matplotlib 在 Python 中绘制 3D 散点图

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 坐标

其中,xyz 分别表示三维散点图中的 x、y、z 坐标。

绘制 3D 散点图

接下来,我们使用 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 散点图:

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 方法进行绘制。绘制时,可以通过 cmarker 参数设置每组散点图的颜色和标记类型。最终,我们设置好坐标轴标题并展示图形。

效果展示

运行以上代码,即可得到如下 3D 散点图:

3D 散点图示例2

以上就是使用 Matplotlib 在 Python 中绘制 3D 散点图的基本方法。通过多次调用 scatter 方法,还可以绘制更多组散点图,实现更加丰富的数据可视化效果。