Matlab Choose Random Color for Plotting

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

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

Elena Rostova
Author

Elena Rostova

Elena Rostova holds a Master's degree in Public Health Journalism. She covers groundbreaking medical research, holistic wellness trends, mental health awareness, and nutritional science.