# How to rotate the symblo only in the 3D map

43 views (last 30 days)
joe joe on 7 Feb 2013
Commented: Walter Roberson on 18 Nov 2016
I want to rotate the symbol(the marker) inside the figure, how to make the marker parrallel to X-Y surface as shown in fig.2?

Walter Roberson on 7 Feb 2013
The closest MATLAB gets to this in the built-in facilities is that scatter3() creates markers as patch objects, which you could post-process to become discs.
You might be able to find something in the File Exchange; I do not recall having happened upon it, but I wasn't looking for it either.
joe joe on 8 Feb 2013
thanks roberson! I would like to try it again and let you know the results later time.
Walter Roberson on 18 Nov 2016
Note: this solution will not work from R2014b onward.

ChristianW on 8 Feb 2013
Edited: ChristianW on 8 Feb 2013
Here is a simple basic part.
n = 100;
X = randi(n,30,1); Y = randi(n,30,1); Z = randi(n,30,1);
r = 4; % factor for radius scale
uZ = unique(Z);
cmap = jet(length(uZ));
for i = 1:length(Z)
R = r * (mean(Z)/300 + (Z(i)-min(Z))/range(Z));
[x,y] = pol2cart(0:pi/8:2*pi,R);
z = zeros(length(x));
C = cmap(uZ==Z(i),:);
patch(x+X(i),y+Y(i),z+Z(i),C,'EdgeColor','none')
end
axis tight; box on; view(23,60)
Scaling the patches for all possible inputs isnt done here. Some manual scaling can be done with r.
##### 3 CommentsShow 1 older commentHide 1 older comment
ChristianW on 8 Feb 2013
Both true, changed/edited the code, thanks.
joe joe on 8 Feb 2013
Edited: joe joe on 8 Feb 2013
good discussion! i learned a lot from you. thanks ,Robberson and ChristianW!