Why delete(fin​dobj(gca,'​type', 'patch')) is not working for erasing scattered points ?

7 views (last 30 days)
Here's a simple snippet that shows that
delete(findobj(gca,'type', 'patch'))
is not working for erasing scattered points:
figure
x = [1,2,3,4]
y = [1,2,3,7]
scatter(x,y,50);
delete(findobj(gca,'type', 'patch')) % not working
%delete(findobj(gca,'SizeData', 50)) % does work
Uncommenting the last line solves the problem, but this is a workaround, or what ?

Accepted Answer

Adam Danz
Adam Danz on 13 Jan 2020
Edited: Adam Danz on 14 Jan 2020
"Why delete(fin​dobj(gca,'​type', 'patch')) is not working for erasing scattered points ?"
Because s = scatter(___) produces a scatter object, not a patch object.
Instead,
delete(findobj(gca,'type', 'scatter'))
Or better yet, use the scatter output which does not require the use of the axis handle and is more responsible since you're deleting a specific object rather than deleting all existing matches to an object type within the current axes.
s = scatter(. . .);
delete(s)

More Answers (0)

Categories

Find more on Graphics Object Programming in Help Center and File Exchange

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!