Why does the marker size change randomly?

4 次查看(过去 30 天)
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 个评论
Sara
Sara 2014-8-6
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>)

请先登录,再进行评论。

采纳的回答

Supreeth Subbaraya
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.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Graphics Performance 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by