I have a nx3
array, lets call it data
, where I want the first 2 columns to be x
and y
coordinates and the 3rd column to be a z
coordinate associated with the x
and y
coordinates in the same row.
I now want to draw a surface plot where the surface intersects all the z
coordinates.
I have seen this post but cannot figure it out.
I know that I can use matplotlib's Axes3D
andfig.gca(projection='3d')
and that it takes 3 nxn
arrays, where I think the X
and Y
arrays can be obtained with X,Y = np.meshgrid(data[:,0],data[:,1])
, but I am not sure how to obtain an nxn
Z
array if there is only 1 Z
coordinate associated with each x
and y
.
Then, I would like to smoothen the surface, as I am sure a surface with only a few data points will look ugly, and I am only looking to represent the general shape of the data and specific values aren't too important. Thus, is there a way to interpolate between the data points in 2 dimensions to smoothen the graph?
Example data set:
data = np.array([[4260,150,116]
[4204,149,1070]
[4204,188,470]
[4444,140,389]
[3255,149,69]
[6370,149,1109]
[5765,189,3531]])