MATLAB 线性 颜色 标记 不重复设计

20岁博客少女 / 2024-09-26 / 原文

num_big= 12; % 至少 9*4*11 才会重复
colors_9= {'#0072BD'; '#D95319'; '#EDB120'; '#7E2F8E'; '#77AC30'; ...
    '#4DBEEE'; '#A2142F'; '#FF00FF'; '#48D1CC'};        num_c= length(colors_9); % 9种
lineStyle_4= {'-'; '--'; '-.'; ':'};                    num_l= length(lineStyle_4); % 4种
marker_11= {'o';'+'; 'x'; 's'; 'd'; '^'; 'p'; ...
    'h'; '.'; '<'; '*'};                                num_m= length(marker_11); % 11种
pltStyle= repmat(struct('Color',[], 'LineStyle','', 'Marker',''), [num_big,1]);
for count=1:num_big
    c0= mod(count,num_c)+1;
    l0= mod(count,num_l)+1;
    m0= mod(count,num_m)+1;
    pltStyle(count).Color= colors_9{c0};
    pltStyle(count).LineStyle= lineStyle_4{l0};
    pltStyle(count).Marker= marker_11{m0};
end

  

可以保证至少 $9 \times 4 \times 11$ 种 metric 之后才会重复。