python 3散点图给出"ValueError:Masked数组必须是1-D",即使我没有使用任何蒙版数组

hou*_*rks 12 scatter matplotlib python-3.x

我正在尝试使用下面的.scatter方法绘制散点图.这里

ax.scatter(X[:,0], X[:,1], c = colors, marker = 'o', s=80, edgecolors = 'none')

使用下面的输入/ args类:

X[:,0]] type: <class 'numpy.matrixlib.defmatrix.matrix'> X[:,1]] type: <class 'numpy.matrixlib.defmatrix.matrix'> colors type: <class 'list'>

但是python正在抛出一个值错误,如下所示: 错误图像

小智 19

把东西放在括号中:

plt.scatter([X[:,0]],[X[:,1]])
Run Code Online (Sandbox Code Playgroud)


Jee*_*ter 8

我的经验是因为你X是一个 numpy matrix

本质上,每当您尝试从矩阵中分离出一行时,它都会返回另一个矩阵。Numpy 似乎有一个约束,矩阵必须是二维的,所以它不能说它是一个一维数组,也不能屏蔽它(因此Masked arrays must be 1-D错误)

我的解决方案Xnumpy.array通过执行以下操作简单地“投射”到 a :

X = np.array(X)
ax.scatter(X[:,0], X[:,1], c = colors, marker = 'o', s=80, edgecolors = 'none')
Run Code Online (Sandbox Code Playgroud)