0x522UFFl0pZ 发表于 前天 00:58

性能对比实验折线图绘制代码(YOLO系列为例)

本文用于绘制性能折线图,适用于对比实验,发现很多博文都是收费,欺负哥们懒得学习,一气之下ai了一下再进行代码修改,免费供给大家学习参考,便于大家撰写论文数据时利于绘制图像,节约时间。
import pandas as pdimport matplotlib.pyplot as plt# 读取CSV文件,替换成自己的绝对路径datav12_cdm = pd.read_csv('/mnt/user/qianzhu/YOLO/v12/yolov12-main/results/v12n-cdm/results.csv')datav12n =pd.read_csv('/mnt/user/qianzhu/YOLO/v12/yolov12-main/results/v12n/results.csv')datav11n = pd.read_csv('/mnt/user/qianzhu/YOLO/v12/yolov12-main/results/v11n/results.csv')datav10n = pd.read_csv('/mnt/user/qianzhu/YOLO/v12/yolov12-main/results/v10n/results.csv')datav8n = pd.read_csv('/mnt/user/qianzhu/YOLO/v12/yolov12-main/results/v8n/results.csv')datav6n = pd.read_csv('/mnt/user/qianzhu/YOLO/v12/yolov12-main/results/v6n/results.csv')# 单独获取每个模型的metrics/mAP50-95(B)列的数据v12_cdm = datav12_cdm['metrics/mAP50-95(B)']v12 = datav12n['metrics/mAP50-95(B)']v11 = datav11n['metrics/mAP50-95(B)']v10 = datav10n['metrics/mAP50-95(B)']v8 = datav8n['metrics/mAP50-95(B)']v6 = datav6n['metrics/mAP50-95(B)']# 获取epochs列的数据,并从第20个数据开始取值每隔20个epochs取一次;训练的mAP50-95(B也是同理epochs = datav12_cdm['epoch']]v12cdmd = v12_cdm]v12d = v12]v11d = v11]v10d = v10]v8d = v8]v6d = v6]# 绘制折线图,如果需要改动自己去查一下这个plt.plot函数中的参数怎么设置plt.plot(epochs, v12cdmd, label='YOLOv12n-CDM(our)', marker='o',color='c')plt.plot(epochs, v12d, label='YOLOv12n', color='green',linestyle='--',alpha=0.8)plt.plot(epochs, v11d, label='YOLOv11n', color='blue',linestyle='--',alpha=0.8)plt.plot(epochs, v10d, label='YOLOv10n',color='black',linestyle='--',alpha=0.8)plt.plot(epochs, v8d, label='YOLOv8n',color='yellow',linestyle='--',alpha=0.8)plt.plot(epochs, v6d, label='YOLOv6n', color='red',linestyle='--',alpha=0.8)#设置图标题,x坐标名字,y坐标名字plt.title('Object Detection')plt.xlabel('epochs')plt.ylabel('map50-95(B)')# 添加图例,在右下角,默认在左上角plt.legend(loc='lower right')# 设置网格线plt.grid(True)# 保存图像到同目录下,换成自己要保存的名字,也可以使用绝对路径进行存储plt.savefig('20.png')
最终效果:

 
页: [1]
查看完整版本: 性能对比实验折线图绘制代码(YOLO系列为例)