Plot multiple lines with gradient gray hue

조회 수: 43 (최근 30일)
ep
ep 2014년 11월 25일
답변: Simon Dengler 2022년 11월 29일
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])

채택된 답변

Stephen23
Stephen23 2014년 11월 25일
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 )

추가 답변 (3개)

Mischa Kim
Mischa Kim 2014년 11월 25일
편집: Mischa Kim 2014년 11월 25일
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
ep
ep 2014년 11월 25일
편집: ep 2014년 11월 25일
Thanks. Is it possible to do the same thing without a loop in only one plot command?

댓글을 달려면 로그인하십시오.


homa rashidisabet
homa rashidisabet 2018년 5월 16일
Thank yoooouuuuu

Simon Dengler
Simon Dengler 2022년 11월 29일
I'm using
colororder([jet(44)])
for similar functionality

카테고리

Help CenterFile Exchange에서 Line Plots에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by