Why does the marker size change randomly?
4 views (last 30 days)
Show older comments
I have created a function which generates a random array of 1000 white dots
function RandomArray
%generate random points for X and Y coordinates of the points
X1 = rand(1000,1);
Y1 = rand(1000,1);
% Create axes
axes1 = axes('Color',[0 0 0]);
hold(axes1,'all');
% Create scatter
H = plot(X1,Y1,'MarkerFaceColor',[1 1 1],'MarkerEdgeColor',[1 1 1],...
'MarkerSize',2,...
'Marker','o',...
'LineStyle','none');
end
As you can see, there is no figure created as part of the function. This means that whenever I type "RandomArray" into the command window, the current figure is used. I have found that when I type RandomArray once, twice and then three times, on the third time, the marker size suddenly decreases, and then remains smaller if I continue to repeat the function. This does not occur when a new figure is created each time as part of the function. Please could someone tell me why this might be? Thanks
1 Comment
Sara
on 6 Aug 2014
If you change the marker type to square, it won't change size with iteration...but I don't know why.
In another answer someone posted: "The circle marker size appears to be the number of points in the diameter. For the other markers, it is not so clear." (<http://www.mathworks.com/matlabcentral/answers/44917-how-is-the-markersize-of-a-circle-marker-defined>)
Accepted Answer
Supreeth Subbaraya
on 6 Aug 2014
This is happening because your renderer is changing from painters to zbuffer. You can check this by putting the following line in your code and debugging.
get(gcf,'renderer')
You can find more information about the renderers here. You can set the renderer by using the command,
set(gcf,'renderer','painters');
You can now see that the marker size would not change randomly.
1 Comment
More Answers (0)
See Also
Categories
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!