1

なぜこれが機能しないのか、私は困惑しています。csv ファイルから多数の浮動小数点データを numpy 配列に取り込み、配列内の 3 つの列に基づいて 3D 散布図を作成したいだけです。

#import data from the csv file
data = np.genfromtxt('data.csv', delimiter=',', dtype=float, skiprows=1)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(data[:,1], data[:,2], data[:,7], c='r', marker='0')
plt.show()

アサーションエラーが発生するたびに:

/usr/lib/pymodules/python2.7/matplotlib/path.pyc in __init__(self, vertices, codes, _interpolation_steps, closed)
127             codes[-1] = self.CLOSEPOLY
128 
--> 129         assert vertices.ndim == 2
130         assert vertices.shape[1] == 2
131 

AssertionError:

私は...ちょうどそれを理解しましたが、これは私が今まで遭遇した中で最も役に立たないエラーメッセージであるため、これを何らかの方法で投稿します. 問題はここにありました:

ax.scatter(data[:,1], data[:,2], data[:,7], c='r', marker='0')

マーカー = '0' は無効です。マーカー = 'o' をヒットするつもりでしたが、修正すると問題なく動作します。

4

1 に答える 1

2

オブジェクトのscatter3D()メソッドを使用できます。Axes3DSubplot

from mpl_toolkits.mplot3d import Axes3D

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

ax.scatter3D(data[:,1], data[:,2], data[:,7], c='r', marker='0')
于 2014-05-12T06:16:47.887 に答える