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 to share