爲了更好地展示幾組算法在不同情況下的幾種指標,需要使用如下圖所示的圖像。
這裏,橫軸代表算法,兩個縱軸代表每種算法對應的不同的指標。
% 數據
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])