How to customize the markers of the scatter figure, as shown below
1 view (last 30 days)
Show older comments
How to use matlab to reproduce the following scatter figure?
As shown below:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1807938/image.png)
0 Comments
Accepted Answer
Matt J
on 14 Nov 2024
Edited: Matt J
on 14 Nov 2024
Here's one way. Not sure you'll like the gymnastics that it requires:
[x,y]=deal(rand(1,40), rand(1,40)); %scattered input data
scatterCustom(x,y)
function scatterCustom(x,y)
%%Create marker prototypes
t=linspace(-pi/2,pi/2,1000)';
t(end+1)=t(1);
p=polyshape([cos(t),sin(t)]/35);
q=rotate(p,180);
f=@(zz,xx,yy) arrayfun(@(u,v) translate(zz,u,v),xx,yy); %translator
%%Plot
plot(f(p,x,y),FaceColor='b');hold on;axis equal
plot(f(q,x,y),FaceColor='none');hold off
end
More Answers (1)
Walter Roberson
on 14 Nov 2024
Edited: Walter Roberson
on 14 Nov 2024
Unfortunately, markers are only customizable between a limited number of pre-set shapes.
You will need to patch(), as I recently described in https://www.mathworks.com/matlabcentral/answers/2164720-how-to-add-pattern-fill-to-markers-in-scatter-plot#answer_1542590
Or I suppose you could use fill()
0 Comments
See Also
Categories
Find more on Scatter Plots 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!