如何在 matplotlib 中制作 3D 散点图

新手上路,请多包涵

我目前有一个 nx3 矩阵数组。我想将三列绘制为三个轴。我怎样才能做到这一点?

我用谷歌搜索,有人建议使用 Matlab ,但我真的很难理解它。我还需要它是一个散点图。

有人可以教我吗?

原文由 user211037 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 342
2 个回答

您可以为此使用 matplotlib 。 matplotlib 有一个 mplot3d 模块,可以完全按照您的意愿进行操作。

 import matplotlib.pyplot as plt
import random

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

sequence_containing_x_vals = list(range(0, 100))
sequence_containing_y_vals = list(range(0, 100))
sequence_containing_z_vals = list(range(0, 100))

random.shuffle(sequence_containing_x_vals)
random.shuffle(sequence_containing_y_vals)
random.shuffle(sequence_containing_z_vals)

ax.scatter(sequence_containing_x_vals, sequence_containing_y_vals, sequence_containing_z_vals)
plt.show()

上面的代码生成如下图:

在此处输入图像描述

原文由 Chinmay Kanchi 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用对我有用的以下代码:

 # Create the figure
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# Generate the values
x_vals = X_iso[:, 0:1]
y_vals = X_iso[:, 1:2]
z_vals = X_iso[:, 2:3]

# Plot the values
ax.scatter(x_vals, y_vals, z_vals, c = 'b', marker='o')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
ax.set_zlabel('Z-axis')

plt.show()

X_iso 是我的 3-D 数组,对于 X_vals、Y_vals、Z_vals,我从该数组复制/使用 1 列/轴并分别分配给这些变量/数组。

原文由 Saeed Ullah 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题