Cannot plot a color gradient (Data must be a single matrix Y or a list of pairs X,Y.)

4 次查看(过去 30 天)
Hi, i want to plot on the same graph 30 curves with colour gradient decreasing from the first to the last curve (from yellow to red). I have tried this code :
c = colormap(jet(1000))
figure
plot((1:num_images),augm(1:30,1:num_images),'Color',c(600:10:880,:)','-')
  • My variable augm is a matrix of num_images*30.
  • When I run the program without the color part ('Color',c(600:10:880,:)'), it runs perfectly fine but i do not have my gradient of colours...
I think I did not understand completely the 'Color' function.
Could you help me with this ?
Thank you !

采纳的回答

Walter Roberson
Walter Roberson 2017-5-2
When you use the 'color' name/value pair, it applies to all lines that you drew in the single plot() call. It is not possible to use 'color' to give different colors for different lines.
If you draw multiple lines with one plot() call, then to give them different RGB colors, you need to loop through the graphics handles setting the Color property.
num_plot = 30;
h = plot(augm(1:num_plot,1:num_images) .', '-'); %make the different plots into columns
color_idx = 600 + 10 * (0:num_plot-1);
for K = 1 : length(h)
set(h(K), 'Color', c(color_idx(K),:) );
end
  1 个评论
Stephen23
Stephen23 2017-5-2
"then to give them different RGB colors, you need to loop through the graphics handles setting the Color property."
Not true. See my answer.

请先登录,再进行评论。

更多回答(2 个)

Stephen23
Stephen23 2017-5-2
编辑:Stephen23 2017-5-2
You can easily set the line ColorOrder property of the axes, then you just need one plot call:
>> map = [0,0,1;1,0.4,0.6]; % e.g. cool(2)
>> axes('ColorOrder',map,'NextPlot','replacechildren')
>> plot([0,1],[1,2],'-',[0,1],[2,1],'*-')

fish minox
fish minox 2017-5-2
Hi Stephen, hi Walter,
Thank you both for your answers, i did not know that the color feature was applied to all curves at the same time. thank you again for the great and fast answers !

类别

Help CenterFile Exchange 中查找有关 2-D and 3-D Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by