使用 Python Matplotlib 创建三维散点图

Beginner

This tutorial is from open-source community. Access the source code

简介

本教程将指导你如何使用 Python 的 Matplotlib 库创建三维散点图。散点图是三个变量之间关系的图形表示。它是识别复杂数据中的模式和趋势的有用工具。

虚拟机提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,请随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。

导入必要的库

为了创建三维散点图,我们将使用 Matplotlib 库。我们还将使用 NumPy 库来生成随机数据。

import matplotlib.pyplot as plt
import numpy as np

设置数据

我们将使用 NumPy 库生成两组具有随机值的数据。一组将表示 x 和 y 坐标,另一组将表示 z 坐标。

def randrange(n, vmin, vmax):
    """
    辅助函数,用于生成形状为 (n, ) 的随机数数组,
    其中每个数在 Uniform(vmin, vmax) 范围内分布。
    """
    return (vmax - vmin)*np.random.rand(n) + vmin

n = 100

for m, zlow, zhigh in [('o', -50, -25), ('^', -30, -5)]:
    xs = randrange(n, 23, 32)
    ys = randrange(n, 0, 100)
    zs = randrange(n, zlow, zhigh)

创建图形和子图

我们将使用 Matplotlib 库中的 add_subplot 函数来创建图形和子图。我们还将把投影设置为 '3d' 以创建三维图。

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

创建散点图

我们将使用 Matplotlib 库中的 scatter 函数来创建散点图。我们将传入 x、y 和 z 坐标以及标记样式。

ax.scatter(xs, ys, zs, marker=m)

设置坐标轴标签

我们将使用 Matplotlib 库中的 set_xlabelset_ylabelset_zlabel 函数来设置 x、y 和 z 轴的标签。

ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')

显示图形

我们将使用 Matplotlib 库中的 show 函数来显示图形。

plt.show()

总结

在本教程中,我们学习了如何使用 Python 中的 Matplotlib 库创建三维散点图。我们使用 NumPy 库设置数据,使用 add_subplot 函数创建图形和子图,使用 scatter 函数创建散点图,使用 set_xlabelset_ylabelset_zlabel 函数设置坐标轴标签,并使用 show 函数显示图形。掌握了这些技能后,你就可以创建和自定义三维散点图来分析和可视化复杂数据。