Python: matplotlib object 'numpy.ndarray' has no attribute 'has_data'

I wanted to get a 3D plot with matplotlib module. Below is a portion of my source code.

(LTV,DTI,FICO) = readData('Acquisition_2007Q1.txt')
x = np.array(LTV)
y = np.array(DTI)
z = np.array(FICO)

fig = plt.figure()
ax = fig.gca(projection='3d')
Axes3D.plot_trisurf(x, y, z, cmap = cm.jet)

      

x

, y

and z

:

array([56, 56, 56, ..., 62, 62, 62])
array([37, 37, 37, ..., 42, 42, 42])
array([734, 734, 734, ..., 709, 709, 709])

      

However, I got the error below:

AttributeError                            Traceback (most recent call last)
<ipython-input-22-5c9578cf3311> in <module>()
      1 fig = plt.figure()
      2 ax = fig.gca(projection='3d')
----> 3 Axes3D.plot_trisurf(x, y, z, cmap = cm.jet)

/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/mpl_toolkits/mplot3d/axes3d.py in plot_trisurf(self, *args, **kwargs)
   1828         """
   1829 
-> 1830         had_data = self.has_data()
   1831 
   1832         # TODO: Support custom face colours

AttributeError: 'numpy.ndarray' object has no attribute 'has_data'

      

+3


source to share


1 answer


It should be

(LTV,DTI,FICO) = readData('Acquisition_2007Q1.txt')
x = np.array(LTV)
y = np.array(DTI)
z = np.array(FICO)

fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_trisurf(x, y, z, cmap = cm.jet)

      



The line Axes3D.plot_trisurf

calls the class method of plot_trisurf

the un-bound class Axes3D

. It expects an instance to Axes3D

be the first argument (which is usually seen when a method is bound to an instance).

+6


source







All Articles