目标
以九宫格布局,绘制同一个3D散点图的不同观察角度的图像
代码
angles = [30,45,60]
# view_angles 是 angles 的笛卡尔积
view_angles = [(elev, azim) for elev in angles for azim in angles]
# 创建一个 3x3 的子图
fig, axes = plt.subplots(nrows=3, ncols=3, figsize=(10, 10), subplot_kw={'projection': '3d'})
# 在每个子图中绘制一个不同视角的 3D 散点图
for ax, view_angle in zip(axes.flat, view_angles):
ax.scatter(X_and_Y_plot[:, 0], X_and_Y_plot[:, 1], Z_plot_real, c='r', marker='o', label='real', s=20, alpha=0.5)
ax.scatter(X_and_Y_plot[:, 0], X_and_Y_plot[:, 1], Z_plot_pred, c='b', marker='^', label='predict',s=20, alpha=0.5)
ax.view_init(elev=view_angle[0], azim=view_angle[1])
# ax.set_title(f"View angle: {view_angle}")
ax.legend()
plt.tight_layout()
plt.show()