Change colour of all scatter points above/below a reference line

2 views (last 30 days)
My aim is to have a plot that has all scatter points above the diagonal a different colour than the points below the diagonal.
I came across answers for colouring partcular points in the plot that are already known. But In my case I have n number of plots that have random scatter points. The only thing common in all the n plots is the diagonal line and the x,y scale.
figure()
A = [1,3,5,7,2,5,3,7,9,5]; % A and B are examples of one of the n plot data
B = [2,6,3,5,8,6,4,2,7,3];
Diag_X = [0,10]; % Diag_X and Diag_Y form a reference line that is common in all the plot data
Diag_Y = [0,10];
scatter (A, B, '*');
hold on
plot (Diag_X, Diag_Y, 'k');
I'd like a function that could be used on any of the n scatter plots such the diagonal line is taken a reference and all the points above it are red and all below all blue.

Accepted Answer

Walter Roberson
Walter Roberson on 15 Feb 2021
colormap = [1 0 0; 0 0 1]; %red, blue -> above, below
A = [1,3,5,7,2,5,3,7,9,5]; % A and B are examples of one of the n plot data
B = [2,6,3,5,8,6,4,2,7,3];
Diag_X = [0,10]; % Diag_X and Diag_Y form a reference line that is common in all the plot data
Diag_Y = [0,10];
idx = 1 + (A > B);
color = colormap(idx,:);
pointsize = 15;
scatter (A, B, pointsize, color, '*');
hold on
plot (Diag_X, Diag_Y, 'k');
hold off

More Answers (0)

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!