plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 df1 = pd.read_csv(r'D:\桌面\pythonProject\map0.5\results.csv\gj.csv') # 读取文件1 df2 = pd.read_csv(r'D:\桌面\pythonProject\map0.5\results.csv\yu.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.001) plt.xlim(0, 100) # 设置坐标轴取值范围 plt.xlabel('epochs', fontsize=16) plt.ylabel('loss', fontsize=16) plt.legend(fontsize=12, loc="best") # 设置标签位置及大小 # plt.savefig("test.png",bbox_inches='tight') plt.show()
时间: 2024-04-28 09:21:38 浏览: 122
这段代码是用于绘制两条曲线的图形,并设置相关参数,其中包括以下几个操作:
- `plt.rcParams['font.sans-serif'] = ['SimHei']`和`plt.rcParams['axes.unicode_minus'] = False`用于设置中文字体和正常显示负号;
- `df1 = pd.read_csv(r'D:\桌面\pythonProject\map0.5\results.csv\gj.csv')`和`df2 = pd.read_csv(r'D:\桌面\pythonProject\map0.5\results.csv\yu.csv')`用于读取两个csv文件,并将其转化为pandas dataframe格式;
- `epoch_1 = df1[" epoch"].values.tolist()`和`mAP5_1 = df1[" train/cls_loss"].values.tolist()`用于从第一个csv文件中获取需要绘制的数据,其中`" epoch"`和`" train/cls_loss"`表示csv文件中的列名,可以根据实际情况进行修改;
- `epoch_2 = df2[" epoch"].values.tolist()`和`mAP5_2 = df2[" train/cls_loss"].values.tolist()`同上,用于从第二个csv文件中获取需要绘制的数据;
- `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算法')`分别用于绘制两条曲线,其中`epoch_1`和`mAP5_1`表示第一条曲线的x轴和y轴数据,`epoch_2`和`mAP5_2`表示第二条曲线的x轴和y轴数据,`color='red'`和`color='black'`分别表示两条曲线的颜色,`label='yolov5s改进算法'`和`label='yolov5s算法'`分别表示两条曲线的标签;
- `plt.xticks(fontsize=10)`和`plt.yticks(fontsize=10)`设置坐标轴上刻度文字的字体大小为10号,可以根据需要进行调整;
- `plt.ylim(0, 0.001)`和`plt.xlim(0, 100)`设置坐标轴取值范围,其中`plt.ylim`表示设置y轴的取值范围,从0到0.001,`plt.xlim`表示设置x轴的取值范围,从0到100,可以根据需要进行调整;
- `plt.xlabel('epochs', fontsize=16)`和`plt.ylabel('loss', fontsize=16)`分别设置x轴和y轴的标签文字,其中`fontsize=16`表示字体大小为16号,可以根据需要进行调整;
- `plt.legend(fontsize=12, loc="best")`设置图例的位置和字体大小,其中`fontsize=12`表示字体大小为12号,`loc="best"`表示自动选择最佳位置进行显示,可以根据需要进行调整;
- `plt.show()`用于显示图形,`plt.savefig()`则是将图形保存为文件,需要注释掉其中一个。
阅读全文