Well there are four possible approaches that come to mind (although I am sure that there are many more) but basically you could either plot the data as a perspective plot, a contour plot, a heat map or if you prefer a 3-D scatter plot (which is more or less a perspective plot when you have values of $z$ for all $(x,y)$ pairs. Here are some examples of each (from a well known 3-D data set in `R`): ![enter image description here][1] ![enter image description here][2] ![enter image description here][3] ![enter image description here][4] Here are two additional plots that have nicer plotting features than the ones given prior. ![enter image description here][5] ![enter image description here][6] So depending on your preference will dictate which way you like to visualize 3-D data sets. Here is the `R` code used to generate these four mentioned plots. library(fields) library(scatterplot3d) #Data for illistarition x = seq(-10, 10, length= 100) y = x f = function(x, y) { r = sqrt(x^2+y^2); 10 * sin(r)/r } z = outer(x, y, f) z[is.na(z)] = 1 #Method 1 #Perspective Plot persp(x,y,z,col="lightblue",main="Perspective Plot") #Method 2 #Contour Plot contour(x,y,z,main="Contour Plot") filled.contour(x,y,z,color=terrain.colors,main="Contour Plot",) #Method 3 #Heatmap image(x,y,z,main="Heat Map") image.plot(x,y,z,main="Heat Map") #Method 4 #3-D Scatter Plot X = expand.grid(x,y) x = X[,1] y = X[,2] z = c(z) scatterplot3d(x,y,z,color="lightblue",pch=21,main="3-D Scatter Plot") [1]: https://i.sstatic.net/sfGra.png [2]: https://i.sstatic.net/x1w95.png [3]: https://i.sstatic.net/wMq9m.png [4]: https://i.sstatic.net/NMxHY.png [5]: https://i.sstatic.net/rDnLF.png [6]: https://i.sstatic.net/lQ5ZC.png