Matplotlib 3D图
大约 2 分钟PythonPythonMatplotlib
Matplotlib 3D图
3D 图表 是用于展示三个变量之间关系的图表。
3D 散点图
用于展示三个变量之间的离散数据点。
import matplotlib.pyplot as plt
import numpy as np
# 数据
x = np.random.rand(50)
y = np.random.rand(50)
z = np.random.rand(50)
# 创建一个新的图形
fig = plt.figure()
# 添加一个3D子图
ax = fig.add_subplot(111, projection='3d')
# 创建3D散点图
ax.scatter(x, y, z, c='r', marker='o')
# 添加标题和标签
ax.set_title('3D Scatter Plot')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.set_zlabel('Z-axis')
# 显示图表
plt.show()

3D 线图
用于展示三个变量之间的连续数据点。
import matplotlib.pyplot as plt
import numpy as np
# 数据
t = np.linspace(0, 10, 100)
x = np.sin(t)
y = np.cos(t)
z = t
# 创建一个新的图形
fig = plt.figure()
# 添加一个3D子图
ax = fig.add_subplot(111, projection='3d')
# 创建3D线图
ax.plot(x, y, z, c='b')
# 添加标题和标签
ax.set_title('3D Line Plot')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.set_zlabel('Z-axis')
# 显示图表
plt.show()

3D 表面图
用于展示三个变量之间的连续函数或数据网格。
import matplotlib.pyplot as plt
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(x**2 + y**2))
# 创建一个新的图形
fig = plt.figure()
# 添加一个3D子图
ax = fig.add_subplot(111, projection='3d')
# 创建3D表面图
surf = ax.plot_surface(x, y, z, cmap='viridis')
# 添加颜色条
fig.colorbar(surf)
# 添加标题和标签
ax.set_title('3D Surface Plot')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.set_zlabel('Z-axis')
# 显示图表
plt.show()

3D 等高线图
用于展示三维空间中的等高线。
import matplotlib.pyplot as plt
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(x**2 + y**2))
# 创建一个新的图形
fig = plt.figure()
# 添加一个3D子图
ax = fig.add_subplot(111, projection='3d')
# 创建3D等高线图
contour = ax.contour3D(x, y, z, 50, cmap='viridis')
# 添加颜色条
fig.colorbar(contour)
# 添加标题和标签
ax.set_title('3D Contour Plot')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.set_zlabel('Z-axis')
# 显示图表
plt.show()

代码中的 cmap
为颜色映射:
- Viridis (
cmap='viridis'
):从暗绿色到亮黄色的渐变,适合大多数数据集,因为它在亮度和饱和度上变化均匀,对色盲友好。 - Plasma (
cmap='plasma'
):从深紫色到亮黄色的渐变。 - Inferno (
cmap='inferno'
):从暗红色到亮黄色的渐变。 - Magma (
cmap='magma'
):从暗红色到亮橙色的渐变。 - Blues (
cmap='Blues'
):从白色到蓝色的渐变。 - Reds (
cmap='Reds'
):从白色到红色的渐变。 - Greens (
cmap='Greens'
):从白色到绿色的渐变。 - Greys (
cmap='Greys'
):从黑色到白色的渐变。