matplotlib从2d numpy数组顶点误差的3d散射

时间:2014-05-11 20:41:47

标签: python numpy matplotlib plot mplot3d

我很难过为什么这不起作用。我将一堆浮点数据从csv文件中拉到一个numpy数组中,我只想根据数组中的3列创建一个三维散点图。

#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')

marker ='0'无效,我打算点击marker ='o',一旦修好就可以了。

1 个答案:

答案 0 :(得分: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')