用 Matplotlib 创建 3D 画布,并将三个类别的数据分别画到三个子 图中。
时间: 2023-06-17 19:05:48 浏览: 144
Matplotlib绘制三维图像
好的,以下是一个示例代码,用于创建一个3D画布,将三个类别的数据分别画在三个子图中:
```python
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 生成三个类别的数据
data1 = np.random.normal(loc=[1, 1, 1], scale=[0.2, 0.2, 0.2], size=(100, 3))
data2 = np.random.normal(loc=[-1, -1, 1], scale=[0.2, 0.2, 0.2], size=(100, 3))
data3 = np.random.normal(loc=[1, -1, -1], scale=[0.2, 0.2, 0.2], size=(100, 3))
# 创建3D画布
fig = plt.figure()
ax1 = fig.add_subplot(1, 3, 1, projection='3d')
ax2 = fig.add_subplot(1, 3, 2, projection='3d')
ax3 = fig.add_subplot(1, 3, 3, projection='3d')
# 在每个子图中绘制对应的数据
ax1.scatter(data1[:, 0], data1[:, 1], data1[:, 2])
ax1.set_title('Class 1')
ax2.scatter(data2[:, 0], data2[:, 1], data2[:, 2])
ax2.set_title('Class 2')
ax3.scatter(data3[:, 0], data3[:, 1], data3[:, 2])
ax3.set_title('Class 3')
# 设置坐标轴标签
ax1.set_xlabel('X')
ax1.set_ylabel('Y')
ax1.set_zlabel('Z')
ax2.set_xlabel('X')
ax2.set_ylabel('Y')
ax2.set_zlabel('Z')
ax3.set_xlabel('X')
ax3.set_ylabel('Y')
ax3.set_zlabel('Z')
# 显示图形
plt.show()
```
运行代码后,将会生成一个包含三个子图的3D画布,每个子图中分别显示对应类别的数据。
阅读全文