在 mplot3d 的 scatter() 上获取值错误:争论 xs 和 ys 必须具有相同的大小。但它们的尺寸相同
Getting value error on scatter() of mplot3d : arguements xs and ys must be of the same size. But they have the same size
我正在尝试使用 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())
这是我得到的输出的屏幕截图 -
ValueError Screenshot
有什么帮助吗?
xx
和 yy
大小不同。您需要打印形状而不是打印长度。
print(xx.shape)
您会发现 xx
的形状为 (512, 1)
,而 yy
的形状为 (512,2)
。因此 yy
有两列,因此条目数是 xx
.
的两倍
由于您似乎想要绘制 mat2
的第二列与第一列的散点图,因此您应该这样创建 xx
和 yy
:
xx = mat2[:,0]
yy = mat2[:,1]
其他数组z
和co
当然也是如此。
我正在尝试使用 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())
这是我得到的输出的屏幕截图 - ValueError Screenshot
有什么帮助吗?
xx
和 yy
大小不同。您需要打印形状而不是打印长度。
print(xx.shape)
您会发现 xx
的形状为 (512, 1)
,而 yy
的形状为 (512,2)
。因此 yy
有两列,因此条目数是 xx
.
由于您似乎想要绘制 mat2
的第二列与第一列的散点图,因此您应该这样创建 xx
和 yy
:
xx = mat2[:,0]
yy = mat2[:,1]
其他数组z
和co
当然也是如此。