Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Matlab choose random color for plotting

Tags:

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); 
like image 880
Jessy Avatar asked Jul 12 '10 00:07

Jessy


People also ask

How do I select a random color in MATLAB?

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); matlab.

How do I change the color scheme of a plot in MATLAB?

You can change the color scheme by specifying a colormap. Colormaps are three-column arrays containing RGB triplets in which each row defines a distinct color. For example, here is a surface plot with the default color scheme. f = figure; surf(peaks);

How do I change the color of a scatter plot in MATLAB?

scatter( x , y , sz , c ) specifies the circle colors. You can specify one color for all the circles, or you can vary the color. For example, you can plot all red circles by specifying c as "red" .


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 
like image 77
gnovice Avatar answered Oct 23 '22 10:10

gnovice


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.

like image 33
Kena Avatar answered Oct 23 '22 10:10

Kena