2017-06-29 7 views
1

私はmplot3dを使用して散布図をプロットしようとしていますが、散布法は私に価値のエラーを与えます: 'xs'と 'ys'は同じサイズでなければなりません。 タイプとサイズを印刷すると、完璧に見えます。私は何が間違っているのか理解できません。ここmplot3dのscatter()で値の取得中にエラーが発生する:arguements 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

任意のヘルプ?

+0

エラーについて質問するときは、問題の[mcve]を入力する必要があります。 – ImportanceOfBeingErnest

+0

申し訳ありません。ここに新しい。 – AlMikFox

答えて

0

xxyyは同じサイズではありません。長さを印刷する代わりに、図形を印刷する必要があります。

print(xx.shape) 

あなたはxx形状(512, 1)であり、yy形状(512,2)であることを確認します。したがって、yyには2つの列があり、したがって2倍の数のエントリがxxとなります。それはあなたが最初に対するmat2の2列目の散布をプロットしたいと思われますので

、次のようなxxyyを作成する必要があります。

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

同じことが、もちろん他の配列にも当てはまりますzおよびco

+0

助けてくれてありがとう。とても有難い。 – AlMikFox

関連する問題