Use gscatter , which makes a scatter chart, using a group ( Label in your case) to paint in different colors / makers.
GSCATTER(X,Y,G,CLR,SYM,SIZ) specifies the colors, markers, and size to use. CLR is either a string of color specifications or a three-column matrix of color specifications. SYM is a string of marker specifications. Type "help plot" for more information. For example, if SYM='o+x', the first group will be plotted with a circle, the second with plus, and the third with x. SIZ is a marker size to use for all plots. By default, the marker is '.'.
So you can specify colors like 'rgcmykwb' to make red for the first group, green for the second, etc. or [] , just for Matlab to figure it out.
By default, Matlab uses the same marker for each group, so you need to specify which markers you want to use for each group. If you do '.ox+*sdv^<>ph' , you simply loop through all the markers that Matlab has.
n=50; % make nx2 matrix of random points. points = random('unif',0,1,n,2); % make nx1 matrix of random labels from {1,2,...,5} labels=round(random('unif',1,5,n,1)); % plot. Let Matlab sort out the colours and we will specify markers. gscatter(points(:,1),points(:,2),labels,[],'ox+*sdv^<>ph.')
It looks something like this: 