Effacer les filtres
Effacer les filtres

Plot multiple lines with gradient gray hue

26 vues (au cours des 30 derniers jours)
ep
ep le 25 Nov 2014
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])

Réponse acceptée

Stephen23
Stephen23 le 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 )

Plus de réponses (3)

Mischa Kim
Mischa Kim le 25 Nov 2014
Modifié(e) : Mischa Kim le 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 commentaire
ep
ep le 25 Nov 2014
Modifié(e) : ep le 25 Nov 2014
Thanks. Is it possible to do the same thing without a loop in only one plot command?

Connectez-vous pour commenter.


homa rashidisabet
homa rashidisabet le 16 Mai 2018
Thank yoooouuuuu

Simon Dengler
Simon Dengler le 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!

Translated by