yolov8源码绘制的map曲线图不够清晰,python代码绘制的曲线图导入word之后清晰度也不够高,所以选择使用matlab来绘制曲线图,matlab可以直接复制图窗到word中,在转换成pdf也不会失真。点击编辑,复制图窗即可复制到word中。
绘制map曲线图首先要从训练好的result.txt或者result.csv文件中将map的值存放到map.xlsx文件中,第一列是epoch,剩下的几列是map值。
matlab代码如下:
clc;
close all;
num = xlsread('C:\Users\CDG\Desktop\data\map.xlsx');
cls = num(:,1);
tiny123= num(:,2);
tiny12 = num(:,3);
tiny1 = num(:,4);
tiny = num(:,5);
plot(cls,tiny123,'LineWidth',1);
hold on
plot(cls,tiny12,'LineWidth',1);
hold on
plot(cls,tiny1,'LineWidth',1);
hold on
plot(cls,tiny,'LineWidth',1);
hold on
h=legend('YOLOv7','YOLOv5','YOLOv8','YOLOx');
h.ItemTokenSize = [10 10];
set(h,'Box','off')
%xlabel('迭代次数 Epoch');
%ylabel('mAP_0_._5/%');
set(gcf,'Position',[100 100 260 220]);
set(gca, 'Fontname', 'Times New Roman', 'Fontsize', 10);
%xlabel('\fontname{宋体}\fontsize{7}迭代次数\fontname{Times New Roman}\fontsize{7} Epoch');
xlabel('\fontname{Times New Roman}\fontsize{10}Epoch');
ylabel('\fontname{Times New Roman}\fontsize{10}mAP@.5/%');
%ylabel('\fontname{Times New Roman}\fontsize{7}mAP_0_._5/%');
%坐标轴刻度设置(字体和字号遵循之前全局设置时的效果)
X_min=0;
X_max=200;
Y_min=0;
Y_max=100.00;
axis([X_min,X_max,Y_min,Y_max]);%坐标轴上下限设置
set(gca,'XTick',(50:50:X_max));%x轴刻度
set(gca,'YTick',(Y_min:10:Y_max));%y轴刻度
set(gca,'LooseInset',get(gca,'TightInset'))
box off;
代码和map文件下载地址如下:
代码地址