# Fill colour in a scatter plot

6 views (last 30 days)
Milan Kumar on 2 May 2019
Answered: Steven Lord on 9 Jul 2024
I neet to fill the graph for with light grey colour and remaining graph with a darker shade. Also two different pattern as backgrounds can also work.

Steven Lord on 9 Jul 2024
This wasn't an option when the question was originally asked, but if you're using release R2023a or later you could use xregion (and similarly yregion for shaded regions in a range of Y values.)
x = 1:10;
plot(x, x.^2);
xregion([3 8], FaceColor = 'r')
yregion([-Inf 64; 9 Inf], FaceColor = 'c')

SAI SRUJAN on 9 Jul 2024
Hi Milan,
I understand that you are facing an issue to fill color in a scatter plot.
Please go through the following code sample to proceed further,
% Sample data
x = linspace(0, 10, 100);
y = 3*x + 5;
% Create scatter plot
scatter(x, y, 'b');
hold on;
x_fill1 = [x(x < 5) 5];
y_fill1 = [y(x < 5) 0];
x_fill2 = [5 x(x >= 5)];
y_fill2 = [0 y(x >= 5)];
% Fill the regions
fill(x_fill1, y_fill1, [0.8 0.8 0.8], 'FaceAlpha', 0.5);
fill(x_fill2, y_fill2, [0.5 0.5 0.5], 'FaceAlpha', 0.5);
hold off;
For a comprehensive understanding of the 'fill' function in MATLAB, please refer to the following documentation.
I hope this helps!