根据颜色图更改现有绘图线

Change existing plot lines according to colormap

我在 Matlab 中有一个带有几条线的图,我想控制线的颜色 post-hoc:

figure; hold on;
for ind=1:4
  plot(rand(1,10))
end

我知道我可以使用

set(0,'DefaultAxesColorOrder',summer(4))

在绘图之前,更改绘图线的颜色,但是(如何)在查看绘图后可以实现相同的效果?可以试试几种不同的配色方案吗?

默认情况下,每个绘图的颜色取自其轴的 属性 'ColorOrder',默认情况下取自 groot 对象的 'DefaultAxesColorOrder' .

创建绘图后,您需要单独修改它们的颜色;更改上述属性不会影响它们:

g = findobj(gca, 'Type', 'line'); % children of current axis that are lines
c = summer(numel(g)); % desired color scheme, with that many colors
for k = 1:numel(g)
    set(g(k), 'color', c(k,:));
end