Azzera filtri
Azzera filtri

Shift figure to specific Z axis location

2 visualizzazioni (ultimi 30 giorni)
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!

Risposta accettata

Walter Roberson
Walter Roberson il 22 Dic 2019
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 Commento
mackhina
mackhina il 26 Dic 2019
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)

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Graphics Performance in Help Center e File Exchange

Prodotti


Release

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by