首页 > 解决方案 > 根据颜色图更改现有绘图线

问题描述

我在 Matlab 中有一个带有几行的图,我想事后控制线条颜色:

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

我知道我可以使用

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

在绘图之前,要更改情节线的颜色,但是(如何)在查看情节后可以达到同样的效果?可能尝试几种不同的颜色模式?

标签: matlabgraphicsformattingmatlab-figure

解决方案


'ColorOrder'默认情况下,每个图都从其轴的属性中获取颜色,而轴的属性默认情况下从对象'DefaultAxesColorOrder'的属性中获取groot

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

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

推荐阅读