# Plotting a 2D Contour from data (A variable with its XY coordinates)

81 views (last 30 days)
Peter on 29 Dec 2014
Commented: Sean de Wolski on 29 Dec 2014
Hello!
I need to plot a 2D Contour form data. I have a variable called "Intensity" with 224x1 values and I have a variable called "XYAxis" with the corresponding coordinates of this Intensity (224 points (X,Y)).
What i want to do is to plot both variables, to have a contour2D with the distribution of the Intensity among the points analized (each value of Intensity corresponds to one point(X,Y).
I have tried:
Contour (XYAxis,Intensity);
But it only displays an empty plot and the axis are not those i desire (i want the contour to be like scattered).
Any idea? Maybe TriScatteredInterp()?? but i need the contour to be 2D
##### 2 CommentsShowHide 1 older comment
Peter on 29 Dec 2014
Sure,
For example, I have one variable called " XYAxis " (224x2 double) this way (1º column is X and 2º Column is Y):
0 0
0 5
5 10
10 20
20 30
... until 224 points
And I have another variable called " Intensity " like this:
0.5
0.8
0.9
0.10
0.11
...
until 224 values
So each value of "Intensity" corresponds with one value of "XYAxis" And i want to plot it with a contour 2d. Thanks

Sean de Wolski on 29 Dec 2014
Edited: Sean de Wolski on 29 Dec 2014
% Synthetic Data
xy = rand(20,2);
intensity = rand(20,1);
% Interpolate to grid
interpolant = scatteredInterpolant(xy(:,1),xy(:,2),intensity);
% Grid
[xx,yy] = meshgrid(linspace(0,1,10)); % replace, 0 1, 10 with range of your values
% Interpolate
intensity_interp = interpolant(xx,yy);
contourf(xx,yy,intensity_interp)
You'll have to interpolate it to a grid and then call contour.
Sean de Wolski on 29 Dec 2014
xlabel('whatever x is')
ylabel('whatever y is')
filename = ['file' num2str(1) '.png'] % replace 1 with whatever you want automatically created.
saveas(gcf,filename)