MATLAB: Change color scheme of a scatter plot

colorschemeMATLAB

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.

Best Answer

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;