我有这个绘图循环,我想为它分配不同的颜色。现在它只考虑它想要的颜色。因此,当N
增加时,某些图表的颜色会相同。因此,区分它们真的很难。如何将不同的颜色专用于不同的图形?
N=24
并且是图表的数量。
for i=1:N
plot(time(1:350),STDX(1:350,i),'lineWidth',3)
hold on
end
答案 0 :(得分:1)
您可以制作所需颜色的单元格数组,然后使用这些颜色在循环内设置绘图颜色。这是一个例子:
C = {'k','b','r','g','y',[.5 .6 .7],[.8 .2 .6]}; % Cell array of colors
figure;
x = 0:.01:1;
hold on
for i=1:7
plot(x,x.^i,'color',C{i});
end
答案 1 :(得分:1)
让我们定义一些示例值,因为您没有提供任何:
N = 24;
time = linspace(0, 5, 350).';
STDX = cos(bsxfun(@times, time, linspace(0, 1, N))); % example values
在最近的Matlab版本中,您只需要根据需要设置轴的'ColorOrder'
属性,然后正常绘图:
set(gca, 'ColorOrder', parula(24)) % set ColorOrder property of the axis
hold on
for ii = 1:N
plot(time(1:350), STDX(1:350, ii), 'lineWidth', 3)
end
另请注意,您可以摆脱循环,只需使用
set(gca, 'ColorOrder', parula(24)) % set ColorOrder property of the axis
hold on
plot(time, STDX, 'lineWidth', 3)
自动绘制具有不同颜色的STDX
的每列。这仍然需要hold on
,因此对plot
的调用不会重置'ColorOrder'
属性。