1

我正在尝试使用 mplot3d 绘制散点图,但 scatter 方法给了我值错误:'xs' 和 'ys' 必须具有相同的大小。当我打印它们的类型和尺寸时,它们看起来很完美。我无法弄清楚出了什么问题。

这是我的代码的一部分:
“mat2”是已经计算的 512 X 4 矩阵。

mat2 = np.array(mat2)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
co = []

xx = mat2[:,:1]
yy = mat2[:,:2]
z = mat2[:,:3]
co = mat2[:,:4]

#printing the size and types of the arguments to the scatter()
print(str(len(xx))+str(type(xx))+' '+str(len(yy))+str(type(yy))+' '+str(len(z))+' '+str(len(co)))

ax.scatter(np.array(xx), np.array(yy), z=np.array(z), c=np.array(co), cmap=plt.hot())

这是我得到的输出的屏幕截图 - ValueError Screenshot

有什么帮助吗?

4

1 回答 1

0

xx并且yy大小不一样。您需要打印形状,而不是打印长度。

print(xx.shape)

你会观察到那xx是有形的(512, 1)yy是有形的(512,2)。因此yy有两列,因此条目数是 的两倍xx

由于您似乎想要绘制第二列与第一列的散点图,因此您mat2应该创建如下:xxyy

xx = mat2[:,0]
yy = mat2[:,1]

当然,其他数组zco.

于 2017-06-29T09:49:57.883 回答