Scatte plot to contour plot xyz data.

101 views (last 30 days)
Hi I have a matrix called Total that is 3x100, the first column is the x value, the second column is the y value and the last column is the z value. When I input this matrix into a scatter plot I get a scatterplot with 3 paralell lines which is correct as I am mapping metal beams underneath concreate and the z value is the electrmagnetic value of the bar, how can I turn this graph into a contourf plot or a color plot.
Thanks

Answers (2)

Star Strider
Star Strider on 15 Mar 2021
Several MATLAB plot types require the ‘Z’ argument to be a matrix.
One way of creating it is to interpolate it, and one way of doing that is this example where ‘x’, ‘y’ and ‘z’ are the original vectors:
N = 50; % Number Of Points Desired
xv = linspace(min(x), max(x), N);
yv = linspace(min(y), max(y), N);
[X,Y] = ndgrid(xv, yv);
Z = griddata(x, y, z, X, Y);
figure
contourf(X, Y, Z)
axis('equal')
Experiment with it with your data.

Christopher McCausland
Christopher McCausland on 15 Mar 2021
Hi,
Have you tried Contour3 for three dimentional contour plots? You should be able to plot a secondary graph from this.
contour3(X,Y,Z);
Kind regards,
Christopher
  2 Comments
Quinn Coughlin
Quinn Coughlin on 15 Mar 2021
Hi Christopher
Thanks for getting back to me, I am trying to get a 2d graph of the data. Also I get a error saying that Z needs to be a 2x2 matrix, how can I fix this?
Thanks Quinn
Christopher McCausland
Christopher McCausland on 16 Mar 2021
@Quinn Coughlin My appologies, I misunderstood what you were asking for. @Star Strider has a very good description below! Another way to interpolate is with cubic splines which would be a little smoother however I would say its probably overkill for this.

Sign in to comment.

Categories

Find more on Contour Plots in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!