How to rotate the symblo only in the 3D map

43 views (last 30 days)
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?
thanks very much in advance

Accepted Answer

Walter Roberson
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
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
Walter Roberson on 18 Nov 2016
Note: this solution will not work from R2014b onward.

Sign in to comment.

More Answers (1)

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),:);
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.
ChristianW on 8 Feb 2013
Both true, changed/edited the code, thanks.
joe joe
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!

Sign in to comment.


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!