import csv
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from urllib.parse import quote
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
df1 = pd.read_csv(r"D:\yolov5-master - newway\yolov5-master\runs\train\exp57\results.csv") #读取文件1
df2 = pd.read_csv(r"D:\yolov5-master - newway\yolov5-master\runs\train\exp72\results.csv") #读取文件2
epoch_1 = df1[" epoch"].values.tolist() #通过文件表头信息读取文件内容
mAP5_1 = df1[" train/cls_loss"].values.tolist()
epoch_2 = df2[" epoch"].values.tolist() #通过文件表头信息读取文件内容
mAP5_2 = df2[" train/cls_loss"].values.tolist()
# fig=plt.figure(dpi=128,figsize=(10,10))
plt.figure(dpi=200,figsize=(8,5))
plt.plot(epoch_1,mAP5_1,color='red', label='yolov5s改进算法') #设置曲线相关系数
plt.plot(epoch_2,mAP5_2,color='black',label='yolov5s原始算法') #设置曲线相关系数
plt.xticks(fontsize=10)
plt.yticks(fontsize=10)
plt.ylim(0, 0.05)
plt.xlim(0, 200) #设置坐标轴取值范围
plt.xlabel('epochs', fontsize=16)
plt.ylabel('mAP_0.5', fontsize=16)
plt.legend(fontsize=12,loc="best") #设置标签位置及大小
# plt.savefig("test.png",bbox_inches='tight')
plt.show()