使用matlab将多个pr曲线绘制到一张图上,matlab绘制的图可以直接复制到world中,这样转换成PDF可以得到清晰的图。
yolov8测试保存pr值的代码可以参考这个:YOLOV8保存pr代码修改
将保存的pr.csv文件中相应的pr值复制到pr.xlsx文件中。
matlab绘制pr曲线代码如下,代码和pr.xlsx下载地址如下:下载地址
clc;
close all;
num = xlsread('C:\Users\CDG\Desktop\data\pr.xlsx');
clsdv7 = num(:,1);
clsv7 = num(:,3);
clsx = num(:,5);
clsv5 = num(:,7);
clsv4 = num(:,9);
clsv3 = num(:,11);
tinydv7= num(:,2);
tinyv7 = num(:,4);
tinyx = num(:,6);
tinyv5 = num(:,8);
tinyv4 = num(:,10);
tinyv3 = num(:,12);
plot(clsdv7,tinydv7,'LineWidth',1);
hold on
plot(clsv7,tinyv7,'LineWidth',1);
hold on
plot(clsx,tinyx,'LineWidth',1);
hold on
plot(clsv5,tinyv5,'LineWidth',1);
hold on
plot(clsv4,tinyv4,'LineWidth',1);
hold on
plot(clsv3,tinyv3,'LineWidth',1);
hold on
h=legend('YOLOv7-Tiny','YOLOv7','YOLOX-S','YOLOv5-S','YOLOv4-Tiny','YOLOv3-Tiny','Location','SouthWest');
h.ItemTokenSize = [10 10];
set(h,'Box','off')
set(gcf,'Position',[100 100 260 220]);
set(gca, 'Fontname', 'Times New Roman', 'Fontsize', 8);
%xlabel('\fontname{宋体}\fontsize{7}召回率');
%ylabel('\fontname{宋体}\fontsize{7}精确率');
xlabel('\fontname{Times New Roman}\fontsize{8}Recall');
ylabel('\fontname{Times New Roman}\fontsize{8}Precision');
%坐标轴刻度设置(字体和字号遵循之前全局设置时的效果)
X_min=0;
X_max=1;
Y_min=0;
Y_max=1;
axis([X_min,X_max,Y_min,Y_max]);%坐标轴上下限设置
set(gca,'XTick',(0.2:0.2:X_max));%x轴刻度
set(gca,'YTick',(Y_min:0.2:Y_max));%y轴刻度
set(gca,'LooseInset',get(gca,'TightInset'))
box off;