MATLAB: How to fill a graph exclusing given points

clustercolourfillgraph

If a graph has a cluster of points, I want the graph to be filled such that every other point except the cluster is coloured

Best Answer

Let's make a random (well, not so random, more arbitrary) polygon.
A = nsidedpoly(5, 'Center', [1 1], 'Radius', 2);
If you wanted to enclose a non-regular region you can use polyshape instead of nsidedpoly (in fact nsidedpoly makes a polyshape.) Plot it and make it red.
p = plot(A, 'FaceColor', 'r');
Find the axes that contains the plotted polygon.
ax = ancestor(p, 'axes');
Make the axes background cyan.
ax.Color = 'c';
Because the plotted polygon is translucent you can see the cyan background "through" it, which makes it look very not red. Let's make it fully opaque so you can't see the background through it.
p.FaceAlpha = 1;
There we go; red pentagon on a cyan background.