从 MATLAB 2014b 开始,其 plot
函数的默认颜色有所调整。
新的默认配色名称为 parula
,意为北美生活的一种森莺
。
如果想了解 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] 更长
也找到了怎么单独修改 marker
的 edge
的 linewidth
了:
%% 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;