Python 语言 Matplotlib 3D 图表 散点图 / 曲面图 绘制指南

Python阿木 发布于 1 天前 3 次阅读


Python Matplotlib 3D 图表绘制指南

Matplotlib 是 Python 中一个强大的绘图库,它支持多种图表类型,包括 2D 和 3D 图表。在科学计算和数据分析中,3D 图表能够提供更丰富的视觉信息,帮助我们更好地理解数据。本文将围绕 Python 语言中使用 Matplotlib 绘制 3D 散点图和曲面图展开,提供详细的代码示例和解释。

环境准备

在开始之前,请确保你已经安装了以下 Python 库:

- Matplotlib
- NumPy
- Mayavi(用于 3D 图表)

你可以使用以下命令安装这些库:

bash
pip install matplotlib numpy mayavi

3D 散点图

1. 导入库

我们需要导入必要的库。

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

2. 创建数据

接下来,我们创建一些用于绘制 3D 散点图的数据。

python
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x2 + y2))

3. 创建图形和轴

使用 `fig` 创建一个图形,使用 `ax` 创建一个 3D 轴。

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

4. 绘制散点图

使用 `scatter` 方法绘制散点图。

python
ax.scatter(x, y, z, c=z, cmap='viridis')

5. 设置标题和标签

为图形设置标题和轴标签。

python
ax.set_title('3D Scatter Plot')
ax.set_xlabel('X axis')
ax.set_ylabel('Y axis')
ax.set_zlabel('Z axis')

6. 显示图形

使用 `show` 方法显示图形。

python
plt.show()

完整代码

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

创建数据
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x2 + y2))

创建图形和轴
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

绘制散点图
ax.scatter(x, y, z, c=z, cmap='viridis')

设置标题和标签
ax.set_title('3D Scatter Plot')
ax.set_xlabel('X axis')
ax.set_ylabel('Y axis')
ax.set_zlabel('Z axis')

显示图形
plt.show()

3D 曲面图

1. 导入库

与 3D 散点图相同,我们首先导入必要的库。

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

2. 创建数据

创建用于绘制曲面图的数据。

python
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x2 + y2))

3. 创建图形和轴

创建图形和 3D 轴。

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

4. 绘制曲面图

使用 `plot_surface` 方法绘制曲面图。

python
surf = ax.plot_surface(x, y, z, cmap='viridis')

5. 设置标题和标签

为图形设置标题和轴标签。

python
ax.set_title('3D Surface Plot')
ax.set_xlabel('X axis')
ax.set_ylabel('Y axis')
ax.set_zlabel('Z axis')

6. 显示图形

使用 `show` 方法显示图形。

python
plt.show()

完整代码

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

创建数据
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x2 + y2))

创建图形和轴
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

绘制曲面图
surf = ax.plot_surface(x, y, z, cmap='viridis')

设置标题和标签
ax.set_title('3D Surface Plot')
ax.set_xlabel('X axis')
ax.set_ylabel('Y axis')
ax.set_zlabel('Z axis')

显示图形
plt.show()

总结

本文介绍了如何使用 Python 和 Matplotlib 绘制 3D 散点图和曲面图。通过上述示例,你可以了解到如何创建数据、设置图形和轴、绘制图表以及显示图形。这些技能对于科学计算和数据分析领域非常有用。希望本文能帮助你更好地理解和应用 Matplotlib 的 3D 图表功能。