如何通过python画loss曲线 & 点线颜色及点线型设置说明(超实用)

本文详细介绍了如何使用Python的matplotlib库来绘制机器学习模型训练过程中的Loss曲线,并展示了如何在同一图表中比较不同模型的Loss变化趋势,以及如何局部放大特定区间的曲线细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 通过python画loss曲线

  1. 首先导入一些python画图的包,读取txt文件,假设我现在有两个模型训练结果的records.txt文件
  2. import numpy as np
    import matplotlib.pyplot as plt
    import pylab as pl
    from mpl_toolkits.axes_grid1.inset_locator import inset_axes
    data1_loss =np.loadtxt("valid_RCSCA_records.txt")  
    data2_loss = np.loadtxt("valid_SCRCA_records.txt") 
    
  1. 我自己的数据第一列是训练步数,第二列的loss,所以取出相应列的数据作为绘图的x和y
x = data1_loss[:,0]
y = data1_loss[:,1]
x1 = data2_loss[:,0]
y1 = data2_loss[:,1]
  1. 先创建一幅图,再在这幅图上添加一个小图,小图用来显示部分放大的曲线
fig = plt.figure(figsize = (7,5))       #figsize是图片的大小`
ax1 = fig.add_subplot(1, 1, 1) # ax1是子图的名字`
  1. 先画出整体的loss曲线
pl.plot(x,y,'g-',label=u'Dense_Unet(block layer=5)')`
# ‘’g‘’代表“green”,表示画出的曲线是绿色,“-”代表画的曲线是实线,可自行选择,label代表的是图例的名称,一般要在名称前面加一个u,如果名称是中文,会显示不出来,目前还不知道怎么解决。
p2 = pl.plot(x1, y1,'r-', label = u'RCSCA_Net')
pl.legend()
#显示图例
p3 = pl.plot(x2,y2, 'b-', label = u'SCRCA_Net')
pl.legend()
pl.xlabel(u'iters')
pl.ylabel(u'loss')
plt.title('Compare loss for different models in training')

画出曲线如图:

5. 显示放大的部分曲线

# plot the box
tx0 = 0
tx1 = 10000
#设置想放大区域的横坐标范围
ty0 = 0.000
ty1 = 0.12
#设置想放大区域的纵坐标范围
sx = [tx0,tx1,tx1,tx0,tx0]
sy = [ty0,ty0,ty1,ty1,ty0]
pl.plot(sx,sy,"purple")
axins = inset_axes(ax1, width=1.5, height=1.5, loc='right')
#loc是设置小图的放置位置,可以有"lower left,lower right,upper right,upper left,upper #,center,center left,right,center right,lower center,center"
axins.plot(x1,y1 , color='red', ls='-')
axins.plot(x2,y2 , color='blue', ls='-')
axins.axis([0,20000,0.000,0.12])
plt.savefig("train_results_loss.png")
pl.show
#pl.show()也可以

在这里插入图片描述

2 点线标志颜色设置说明

2.1 点线颜色设置

我们改变线和点的颜色,只需修改plot()的第三个参数

c–cyan–青色
r–red–红色
m–magente–品红
g–green–绿色
b–blue–蓝色
y–yellow–黄色
k–black–黑色
w–white–白色

上述参数可以叠加,从而产生有点又有线的图像。
在这里插入图片描述

2.2 线型设置

我们还可以改变线型,也是修改plot的第三个参数。

-实线
– 虚线
-. 形式即为-.
: 细小的虚线

在这里插入图片描述

2.3 点型设置

我们还可以改变点型,同样是修改第三个参数。

s–方形
h–六角形
H–六角形
*–*形
±-加号
x–x形
d–菱形
D–菱形
p–五角形

在这里插入图片描述

2 同时绘制多个图像

如果要在同一幅图中绘制多个图像,只需在show()之前再定义另外两个变量即可。
在这里插入图片描述
参考如下:
1.https://blog.youkuaiyun.com/qq_43679030/article/details/86178812
2.https://blog.youkuaiyun.com/qq_32855463/article/details/86610098

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值