How to count the number of scatter points of each color

4 views (last 30 days)
I have make a code that do the scatter points in a graph, but i need to find the number of scatter points of each color? i have attached the sample code and graph for explaintion
for h=num_fixed_nodes+1:1:num_nodes
%Generate random nodes within the region
S1(h).xd = position_region(i,1) + rand(1,1)*region_width;
S1(h).yd = position_region(i,2) + rand(1,1)*region_height;
S1(h).G=0;
S1(h).id=h;
S1(h).type='N';
S1(h).temp = interp2(aa1,bb1,temp_values_1,S1(h).xd,S1(h).yd);
S1(h).E=Eo*rand(1,1);
Et=Et+S1(h).E;
S1(h).node_status = S1(h).temp<thresh_temp;
if(S1(h).node_status==1)
scatter(S1(h).xd,S1(h).yd, 'filled','MarkerFaceColor','g');
else
scatter(S1(h).xd,S1(h).yd, 'filled','MarkerFaceColor','r');
end
end

Accepted Answer

Voss
Voss on 8 Jun 2024
idx = [S1(num_fixed_nodes+1:num_nodes).node_status]==1;
n_green = nnz(idx);
n_red = nnz(~idx);
  2 Comments
Voss
Voss on 10 Jun 2024
You're welcome! Any questions, let me know. Otherwise, please "Accept" this answer. Thanks!

Sign in to comment.

More Answers (1)

Steven Lord
Steven Lord on 10 Jun 2024
Rather than creating one scatter plot for each individual point, I'd use that loop to create a vector of data that indicates in which color each point should be plotted then call scatter once after the loop is complete, passing that vector in as the c input argument. In that case you could use the groupcounts function to count how many elements of each color are in c.

Categories

Find more on Discrete Data Plots in Help Center and File Exchange

Products


Release

R2023b

Community Treasure Hunt

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

Start Hunting!