为了更好地展示几组算法在不同情况下的几种指标,需要使用如下图所示的图像。
这里,横轴代表算法,两个纵轴代表每种算法对应的不同的指标。
% 数据
Ncar=1:3;
% 柱状图数据
Norder1 = [800 1100 1250];
Norder2 = [420 550 625];
% 折线图数据
qcar1 = [1 2 3];
qcar2 = [2 4 6];
% 打开新图
figure;
hold on;
% 左边y轴(柱状图)
yyaxis left
bar(Ncar, [Norder1',Norder2']);
ylim([0 1500])
ylabel('Transfer speed')
% 标记数据到柱状图
offset_vertical = 40; % 根据需要调整
offset_horizon = 0.15; % 根据需要调整
for i = 1:length(Norder1)
if Norder1(i)>=0
text(i - offset_horizon,Norder1(i) + offset_vertical,num2str(Norder1(i)),'VerticalAlignment','middle','HorizontalAlignment','center');
else
text(i - offset_horizon,Norder1(i) - offset_vertical,num2str(Norder1(i)),'VerticalAlignment','middle','HorizontalAlignment','center');
end
end
for i = 1:length(Norder2)
if Norder1(i)>=0
text(i + offset_horizon,Norder2(i) + offset_vertical,num2str(Norder2(i)),'VerticalAlignment','middle','HorizontalAlignment','center');
else
text(i + offset_horizon,Norder2(i) - offset_vertical,num2str(Norder2(i)),'VerticalAlignment','middle','HorizontalAlignment','center');
end
end
% 右边y轴(折线图)
yyaxis right
plot(Ncar,qcar1,'ro-');
plot(Ncar,qcar2,'b*-');
ylim([0 8])
ylabel('Energy consumption per hour')
% 图注
legend({'Low melting point crude oil transfer pipeline','High melting point crude oil transfer pipeline',...
'Low melting point crude oil transfer pipeline','High melting point crude oil transfer pipeline'});
% x轴
set(gca,'xtick', [1 2 3 4])