Plot multiple lines with gradient gray hue

36 views (last 30 days)
I have created a 10-line plot and I want each line to have a gray hue, gradient from dark for the first line to light to light for the last. I know that the rgb colors I need to use are the following: [1 1 1], [0.9 0.9 0.9], [0.8 0.8 0.8], ..., [0.2 0.2 0.2] and [0.1 0.1 0.1] but when I use them in the plot command it fails to work, all lines appear to have the same color. My plot command is the following:
plot(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,x7,y7,x8,y8,x9,y9,x10,y10,'Color',[1 1 1],'Color',[0.9 0.9 0.9],'Color',[0.8 0.8 0.8],'Color',[0.7 0.7 0.7],'Color',[0.6 0.6 0.6],'Color',[0.5 0.5 0.5],'Color',[0.4 0.4 0.4],'Color',[0.3 0.3 0.3],'Color',[0.2 0.2 0.2],'Color',[0.1 0.1 0.1])

Accepted Answer

Stephen23
Stephen23 on 25 Nov 2014
This can be done quite easily in one plot command without a loop, using a matrix as the input (as the plot documentation explains), and the 'ColorOrder' axes-property:
N = 10;
C = repmat(linspace(1,0.1,N).',1,3);
axes('ColorOrder',C,'NextPlot','replacechildren')
X = linspace(0,pi*3,1000);
Y = bsxfun(@(x,n)n*sin(x+2*n*pi/N), X.', 1:N);
plot(X,Y, 'linewidth',4)
(untested, but I only slightly adapted it from one of the plot examples here: http://www.mathworks.com/matlabcentral/fileexchange/45208 )

More Answers (3)

Mischa Kim
Mischa Kim on 25 Nov 2014
Edited: Mischa Kim on 25 Nov 2014
Alverto, you could use something like
my_col = repmat(linspace(0,1,10)',1,3); % create your own gray colors color map
t = 0:0.1:pi;
a = 1:length(my_col(:,1));
y = a'*sin(t);
hold all
for ii = 1:numel(a) % show 10 plots with color map
plot(y(ii,:),'color',my_col(ii,:))
leg{ii} = strcat('data',num2str(ii));
end
legend(leg)
To see how the color map looks like simply remove the semi colon at the end of the first command.
  1 Comment
ep
ep on 25 Nov 2014
Edited: ep on 25 Nov 2014
Thanks. Is it possible to do the same thing without a loop in only one plot command?

Sign in to comment.


homa rashidisabet
homa rashidisabet on 16 May 2018
Thank yoooouuuuu

Simon Dengler
Simon Dengler on 29 Nov 2022
I'm using
colororder([jet(44)])
for similar functionality

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!