Shift figure to specific Z axis location

조회 수: 16 (최근 30일)
mackhina
mackhina 2019년 12월 22일
댓글: mackhina 2019년 12월 26일
I am trying to plot a scatterplot against a topographical figure. When I opent the figure is currently set to the z-axis at 0. When I load the figure, is there a way to set it at a specific z-azis (e.g. -45 for my case). This way the scatter3 plot (which is plotted against depth) will show above the image.
for l = 1:(length(indx1))
data2 = table2array(data1{1,l});
for m = 1:length(indx2)
fig_name = string(sheets(indx1(1))) + ': Value - ' + string(table_name(m)); % Figure name
openfig('topo_image.fig'); % Open map figure to plot data against
set(gcf,'name', fig_name);
hold on
scatter3(data2(:,3),data2(:,4),data2(:,7),40,data2(:,8))
end
end
z-axis.PNG
Thanks for any help!

채택된 답변

Walter Roberson
Walter Roberson 2019년 12월 22일
No, figures do not have Z coordinates, only items within axes can have Z coordinates.
If you can findobj() the map within the figure then you can alter its ZData, if it has ZData. If it does not have ZData (for example image() do not have ZData) then you can create an hgtransform() and parent the object to it, and set a transform matrix for the hgtransform object.
  댓글 수: 1
mackhina
mackhina 2019년 12월 26일
Thanks for the advice. I wasn't able to get hgtransfrom working (examples where a bit confusing with my limited matlab knowledge), but warp worked on the image in the way you mentioned, and I was then able to save it as the figure for my scatter3 plot. Cheers!
im = imread('topo_image.png');
figure
[X,Y] = meshgrid(1:size(im,2),1:size(im,1));
warp(X,Y,-45*ones(size(X)),im)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

태그

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by