# change color scheme of a scatter plot

31 views (last 30 days)
Sajid Afaque on 27 May 2020
Commented: Sajid Afaque on 29 May 2020
here above you can see i have a 2-D Scatter plot. now i want to change the color scheme.
for all the values
1. values <= 10 ----- green color
2. (10<values<=20) ----- yellow color (for intermediate values i.e for 13 or 16 let yellow shades become darker and similar for all 4 ranges)
3. (20 < values <= 50) ----- orange color
4. (50 < values ) ---- red color.

Image Analyst on 28 May 2020
Try this:
% values <= 10 ----- green color
% (10<values<=20) ----- yellow color (for intermediate values i.e for 13 or 16 let yellow shades become darker and similar for all 4 ranges)
% (20 < values <= 50) ----- orange color
% (50 < values ) ---- red color.
% First we need to create sample data because the original poster did not include it.
X = 8 : 2 : 16;
Y = 8 : 2 : 14;
[x, y] = meshgrid(X, Y);
x = x(:); % Make into 1-D vector.
y = y(:); % Make into 1-D vector.
z = randi(70, length(x), 1);
% Now we have our data and we can begin.
% We need to make up a colormap for the markers based on the value of z.
markerColors = zeros(length(x), 3);
rows = z <= 10;
markerColors(rows, :) = repmat([0, 1, 0], sum(rows), 1); % Green
rows = z > 10 & z <= 20;
markerColors(rows, :) = repmat([1, 1, 0], sum(rows), 1); % Yellow
rows = z > 20 & z <= 50;
markerColors(rows, :) = repmat([1, 0.59, 0], sum(rows), 1); % Orange
rows = z > 50;
markerColors(rows, :) = repmat([1, 0, 0], sum(rows), 1); % Red
scatter(x, y, 300, markerColors, 'filled');
grid on;

KSSV on 27 May 2020
You should follow like this demo:
n = 100 ;
x = 1:n ;
y = rand(size(x)) ;
% divide based on values
idx1 = y >=0 & y<0.25 ;
idx2 = y >=0.25 & y<0.5 ;
idx3 = y >=0.5 & y<0.75 ;
idx4 = y >=0.75 & y < 1 ;
figure
hold on
plot(x(idx1),y(idx1),'*r')
plot(x(idx2),y(idx2),'*b')
plot(x(idx3),y(idx3),'*g')
plot(x(idx4),y(idx4),'*k')