Matlab choose random color for plotting

I have 6 vectors which I want to plot. How I can make each plot with different color (random)? With the code below, the plot limited to one color for all six vectors.

plot(x,y,'-rs','LineWidth',1,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',5); 
1

2 Answers

You can have PLOT automatically choose line colors for you. If all 6 of your vectors are the same length, you can put the x and y coordinates into N-by-6 matrices X and Y and pass these to PLOT. A different color will be used for each column:

plot(X,Y,'-s'); %# Plots lines with square markers 

You could also use some of the built-in colormaps to generate a set of colors, then use these when you plot each line separately. For example:

cmap = hsv(6); %# Creates a 6-by-3 set of colors from the HSV colormap for i = 1:6 %# Loop 6 times plot(X(:,i),Y(:,i),'-s','Color',cmap(i,:)); %# Plot each column with a %# different color end 
6

To create a random color map, you could do the following

myMap = rand(nbColors, 3); for i = 1:nbColors plot(X(:,i),Y(:,i),'-s','Color',myMap(i,:)); end 

However, as I stated in my comment to gnovice's answer, picking colors out of a colormap generally provides much more readable color combinations.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like