Grid search and grid plot with colours
이전 댓글 표시
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
Voss
2021년 12월 18일
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
2021년 12월 18일
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
2021년 12월 18일
Voss
2021년 12월 19일
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
2021년 12월 19일
Voss
2021년 12월 19일
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
2021년 12월 19일
Voss
2021년 12월 19일
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
2021년 12월 19일
Voss
2021년 12월 19일
You can post the latest version of your code and I'll take a look at it when I can.
Anitha Limann
2021년 12월 19일
Voss
2021년 12월 19일
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
2021년 12월 19일
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
2021년 12월 20일
Voss
2021년 12월 20일
No problem! Don't hesitate to ask another question if you suspect your calculations are off.
Anitha Limann
2021년 12월 20일
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Discrete Data Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

