MATLAB 默认颜色风格

从 MATLAB 2014b 开始,其 plot 函数的默认颜色有所调整。

新的默认配色名称为 parula,意为北美生活的一种森莺

1
如果想了解 parula 的配色方案,可以在 MATLAB 中输入以下命令:

get(gca,'colororder')
      0    0.4470    0.7410
    0.8500    0.3250    0.0980
    0.9290    0.6940    0.1250
    0.4940    0.1840    0.5560
    0.4660    0.6740    0.1880
    0.3010    0.7450    0.9330
    0.6350    0.0780    0.1840

code:

plot(x, y, 'color', [0  114  189]/255);   %暗蓝
plot(x, y, 'color', [217  83  25]/255);   %深黄
plot(x, y, 'color', [126 47 142]/255);   %紫色
plot(x, y, 'color', [119 172 48]/255);   %绿色
plot(x, y, 'color', [162 20 47]/255);     %棕红

旧版本颜色

plot(x, y, '--s', 'Color', [0  0  0], 'linewidth', 2); % 黑
plot(x, y, '--o',' Color', [0  0  1], 'linewidth', 2); % 蓝
plot(x, y, '--^',' Color', [1  0  0], 'linewidth', 2); % 红
plot(x, y, '--d',' Color', [0.13   0.55   0.13], 'linewidth', 2); % 绿

终于找到 MATLAB 2015 以后的 legend 里怎么改图例线长的方法了,还蛮简单的:

handle=legend('Proposed','SDR', 'Random', 'Without');
handle.ItemTokenSize = [60,30]; % 默认值是 [30, 18], 可设置 [80, 40] 更长

也找到了怎么单独修改 markeredgelinewidth 了:

%% Plot figure
line = plot(P_list, R_result, '-', 'Marker', 'o', 'Color', [0  1  0], 'LineWidth', 1.0, 'MarkerSize', 10);

drawnow;
line .MarkerHandle.LineWidth = 1.5;

但是注意的是,要在图例中的线条属性和 plot 的一致,需要重新写,这里找了一种曲线救国的方案:

%% Plot figure
l0 = plot(x, y1, '-', 'Marker', 'o', 'Color', [0  114  189]/255, 'LineWidth', 0.5, 'MarkerSize', 10);
hold on;
l1 = plot(x, y2, '-', 'Marker', '<', 'Color', [217  83  25]/255, 'LineWidth', 0.5, 'MarkerSize', 10);
l2 = plot(x, y3, '-', 'Marker', '*',  'Color', [126 47 142]/255, 'LineWidth', 0.5, 'MarkerSize', 10);
l3 = plot(x, y4, '--', 'Marker', '*', 'Color', [0 0 0]/255, 'LineWidth', 0.5, 'MarkerSize', 10);

drawnow;
l0.MarkerHandle.LineWidth = 1.5;
l1.MarkerHandle.LineWidth = 1.5;
l2.MarkerHandle.LineWidth = 1.5;
l3.MarkerHandle.LineWidth = 1.5;

set(gca,'xtick', x);
xlim([x(1), x(end)]);
xlabel('x'); 
ylabel('y');

[leg, icons] = legend({'method 1', 'method 2', 'method 3', 'method 4'},'FontSize', 12, 'ItemTokenSize', [60, 40]);
set(findobj(icons,'type','Text'),'FontSize',12);
set(findobj(icons,'Marker', 'none', '-xor'), 'LineWidth', 1.5);

set(gca, 'FontSize', 12);
grid on;

猜你喜欢

转载自blog.csdn.net/qq_23947237/article/details/106747230