本文将实现一个双轴折线图的绘制。
%% 双轴折线图绘制
%% 数据准备
% 读取数据
% 自变量X
X = 0:0.05:10;
% 因变量Y1,对应左轴
Y1 = 0.5*exp(-0.5*X).*sin(10*X);
% 因变量Y2,对应右轴
Y2 = fliplr(Y1*10); % 左右翻转Y1*10
%% 图片尺寸设置(单位:厘米)
figureUnits = 'centimeters';
figureWidth = 20;
figureHeight = 8;
%% 定义线型、标记符号、线宽和颜色
colorTypes = cbrewer('qual','Set2',8,'linear');
% 定义因变量Y1线型、符号、线宽与颜色
Y1_LS = '-';
Y1_MK = 'none';
Y1_LW = 1.5;
Y1_C = colorTypes(5,:);
% 定义因变量Y2线型、符号、线宽与颜色
Y2_LS = '-';
Y2_MK = 'none';
Y2_LW = 1.5;
Y2_C = colorTypes(3,:);
%% 窗口设置
figureHandle = figure;
set(gcf, 'Units', figureUnits, 'Position',[10 10 figureWidth figureHeight]);
hold on
%% 激活左轴
yyaxis left
A1 = line(X,Y1);
set(A1,'LineStyle',Y1_LS,'Marker',Y1_MK,'LineWidth', Y1_LW, 'Color', Y1_C)
hYLabel1 = ylabel('Acurracy (%)');
% 坐标区调整
set(gca, 'YColor', Y1_C,... % 坐标轴颜色
'YTick', -0.6:0.2:0.6,... % 刻度位置、间隔
'Ylim' , [-0.6 0.6], ... % 坐标轴范围
'Yticklabel',{[-0.6:0.2:0.6]}) % Y坐标轴刻度标签
%% 激活右轴
yyaxis right
A2 = line(X,Y2);
set(A2, 'LineStyle',Y2_LS,'Marker',Y2_MK,'LineWidth',Y2_LW, 'Color', Y2_C)
hYLabel2 = ylabel('Time (s)');
% 坐标区调整
set(gca, 'XColor',[.1 .1 .1], 'YColor', Y2_C,... % 坐标轴颜色
'YTick', -6:2:6,... % 刻度位置、间隔
'Ylim' , [-6 6], ... % 坐标轴范围
'Yticklabel',{[-6:2:6]}) % Y坐标轴刻度标签
% %% 图片输出
% fileout = 'test';
% print(figureHandle,[fileout,'.png'],'-r600','-dpng');
注:需要安装matlab的第三方着色方案cbrewer
[1] cbrewer
[2] Matlab论文插图绘制模板—双轴折线图