Grid search and grid plot with colours
Show older comments
Hello,
I would like to do a grid search by assining zeros to each grid point first. And then I would like to calculate required values for each grid point and finally I am required to plot the grid with relevant values. here my grid represent error values for each grid point. So I want to plot this grid using some colour scheme method.
Attached here is the type of graph I am looking for.

Could someone please help me with this?
Below is the code I wrote for this. However I am not sure how much of assigning zeros, for loop and then plotting is correct.
I tried to use plot and quiver fuctions but different length x and y axis appeared to be an error in that case. For now i used surf function, though i am not sure if that is correct. But it gives me a z axis too, which is not what i want.
Please let me know if someone could help me with this.
% Obserevd Z location km/Myr ## 176.7 W, 19.2 S, 64 mm/yr (km/Myr) velocity;
Zlon=-176.324;
Zlat=-18.395;
Zobsw=64;
R=6371; %km
% evaluate error at each grid point
AClon =-177.5:0.01:-176.7;
AClat =-20.5:0.01:-19;
[X,Y]=meshgrid(AClon,AClat);
AC=zeros(151,81);
for i=[1:151]
for j=[1:81]
arclen = distance(Zlon,Zlat,AClon(j),AClat(i)); % arc distant between 1.Z location and 2.each grid point.
w =(Zobsw/(R*sin(theta*pi/180)))*180/pi; % deg/Myr
vl = plate_vel(Zlon,Zlat,AClon(j),AClat(i),w); % i found this plate-vel funtion online. please use any set of data as an example here.
misfit=(sum((Zobsw-vl).^2)./(numel(vl)));
AC(i,j)=misfit;
end
end
surf(X,Y,AC)
18 Comments
Voss
on 18 Dec 2021
surf(X,Y,AC) uses AC for the color data and surface height. If you want a flat surface (e.g., all ZData are 0), you can do this:
surf(X,Y,zeros(size(X)),AC);
Then set the axes view to be from directly above the surface (looking down on the X-Y plane):
set(gca(),'View',[0 90]);
I'm not sure if this helps you get what you're after though.
Anitha Limann
on 18 Dec 2021
I'm not sure what you mean by "plot error calculations". Do you want a dot or a circle, say, at each (x,y) point, with the color of the dot or circle corresponding to the error value?
If so, you can try this (to get dots):
scatter3(X(:),Y(:),AC(:),[],AC(:),'Marker','.');
set(gca(),'View',[0 90]); % set to X-Y view
Anitha Limann
on 18 Dec 2021
Voss
on 19 Dec 2021
Put this after your for loops:
AC_group = zeros(size(AC));
% AC_group(AC < 5) = 0; % it is not necessary to specify this one
AC_group(AC >= 5 & AC <= 10) = 1;
AC_group(AC > 10) = 2;
scatter3(X(:),Y(:),AC_group(:),[],AC_group(:),'Marker','.');
set(gca(),'View',[0 90]);
set(gcf(),'Colormap',[0 0 1; 1 0 0; 0 1 0]); % color is [blue; red; green] <-> AC_group is [0; 1; 2]
Anitha Limann
on 19 Dec 2021
Voss
on 19 Dec 2021
AC_median = median(AC(:));
AC_group = zeros(size(AC));
AC_group(AC <= AC_median) = 1;
AC_group(AC > AC_median) = 2;
scatter3(X(:),Y(:),AC_group(:),[],AC_group(:),'Marker','.');
set(gca(),'View',[0 90]);
set(gcf(),'Colormap',[0 0 1; 1 0 0]); % color is [blue; red] <-> AC_group is [1; 2]
Anitha Limann
on 19 Dec 2021
Voss
on 19 Dec 2021
That image looks more like a surface than a scatter plot. And with no thresholding into groups, and with a greyscale color map:
surf(X,Y,zeros(size(X)),AC,'EdgeColor','none');
set(gca(),'View',[0 90]);
colormap('gray');
See if that gives you something similar.
Anitha Limann
on 19 Dec 2021
Voss
on 19 Dec 2021
You can post the latest version of your code and I'll take a look at it when I can.
Anitha Limann
on 19 Dec 2021
Voss
on 19 Dec 2021
Try replacing the last few lines, from figure(2) to the end, with this:
figure(2)
% surf(X,Y,AC);
surf(X,Y,zeros(size(X)),AC,'EdgeColor','none','FaceColor','interp');
set(gca(),'View',[0 90]);
set(gcf(),'Colormap',flip(gray(),1));
Does it look similar enough to the reference image? If not, what is different?
Anitha Limann
on 19 Dec 2021
No problem. Since the question regarding making an image like the reference image appears to be resolved, I'll make an answer with the relevant plotting code, which you can accept so that others may find it.
If you have additional questions about why the data/calculations might be incorrect, please post them as new questions.
Anitha Limann
on 20 Dec 2021
Voss
on 20 Dec 2021
No problem! Don't hesitate to ask another question if you suspect your calculations are off.
Anitha Limann
on 20 Dec 2021
Accepted Answer
More Answers (0)
Categories
Find more on Graphics Performance 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!
