在mplot3d的散点()上获取值误差:争论XS和ys必须具有相同的大小.但是它们的大小相同



我正在尝试使用mplot3d绘制散点图,但是散点方法给出了我的价值错误:'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())

这是我得到的输出的屏幕截图 - value error屏幕截图

有帮助吗?

xxyy的大小不是相同的。您需要打印形状,而不是打印长度。

print(xx.shape)

您会观察到xx是形状(512, 1),而yy为形状(512,2)。因此,yy有两列,因此两倍的条目是xx

由于您似乎要绘制mat2的第二列的散布,因此您应该创建xxyy这样:

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

当然对于其他阵列zco

也是如此

相关内容

  • 没有找到相关文章