【python】plt.plot() 函数绘制loss曲线

这篇具有很好参考价值的文章主要介绍了【python】plt.plot() 函数绘制loss曲线。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一.  数据形式 (输入数据)

二.  绘图(完整代码)

三.  plt.plot() 函数 (调整图形)

1. plt.plot(x, y) 

2. plt.plot(x, y, "格式控制字符串")

2.1 "颜色"与"线型"

2.2 "点型"

 3. plt.plot(x, y, "格式控制字符串", 关键字=参数)


一.  数据形式 (输入数据)

训练过程中每个epoch都输出当前轮结果,输出数据保存在.txt文件,形式如下:

因为只是举个例子,只用30张图跑了5个epoch,不过数值不重要!过程先搞明白。

#每个epoch都输出当前轮结果
print("epoch[%d/%d],train_loss,%.4f,train_acc,%.4f,train_miou,%.4f,eval_loss,%.4f,eval_acc,%.4f,eval_miou,%.4f,lr,%.6f,time,%ds" %
              (epoch + 1, EPOCHES, epoch_loss, epoch_acc, epoch_miou, val_loss, val_acc, val_miou, learning_rate, time.time() - st_epoch))

#输出结果形式
epoch[1/5],train_loss,3.0900,train_acc,0.0190,train_miou,0.0046,eval_loss,3.0398,eval_acc,0.0438,eval_miou,0.0075,lr,0.000005,time,23s
epoch[2/5],train_loss,2.9437,train_acc,0.0667,train_miou,0.0090,eval_loss,2.9367,eval_acc,0.1133,eval_miou,0.0082,lr,0.000005,time,25s
epoch[3/5],train_loss,2.8345,train_acc,0.1875,train_miou,0.0141,eval_loss,2.8379,eval_acc,0.2588,eval_miou,0.0087,lr,0.000005,time,25s
epoch[4/5],train_loss,2.7256,train_acc,0.3285,train_miou,0.0163,eval_loss,2.7290,eval_acc,0.4454,eval_miou,0.0072,lr,0.000005,time,24s
epoch[5/5],train_loss,2.6142,train_acc,0.5298,train_miou,0.0167,eval_loss,2.6255,eval_acc,0.5811,eval_miou,0.0032,lr,0.000005,time,27s

二.  绘图(完整代码)

  1. 逐行读取数据
  2. split()按所给符号分割
  3. 把所需列的数据按索引添加到对应的表里
  4. 用plt画图,需要什么形式的图,函数的参数可以参考第三部分函数介绍自行更改
#完整代码
import matplotlib.pyplot as plt

file = open('log.txt')  #打开文档
lines = file.readlines() #读取文档数据
#epoch = list(1, range(len(lines))+1) #epoch可以直接赋值,不放心的就用下面epoch的代码
epoch = []
train_loss = []
val_loss = []
for line in lines:
	# split用于将每一行数据用自定义的符号(我用的是逗号)分割成多个对象
    # 取分割后的第0列,转换成float格式后添加到epoch列表中
    epoch.append(str(line.split(',')[0]))
    # 取分割后的第2列,转换成float格式后添加到train_loss列表中
    train_loss.append(float(line.split(',')[2]))
    #取分割后的第8列,转换成float格式后添加到val_loss列表中
    val_loss.append(float(line.split(',')[8]))
plt.figure()         
plt.title('loss during training')  #标题
plt.plot(epoch, train_loss, label="train_loss")
plt.plot(epoch, val_loss, label="valid_loss")
plt.legend()
plt.grid()
plt.show()

输出结果:

【python】plt.plot() 函数绘制loss曲线

三.  plt.plot() 函数 (调整图形)

matplotlib.pyplot模块下的一个函数, 用于画图。它可以绘制点和线, 并且对其样式进行控制。

函数定义为plt.plot(*args, **kwargs)

import matplotlib.pyplot as plt
help(plt.plot) # 查看英文函数定义
  • *args, 可变位置参数, 以元组形式存放了很多无名参数.
  • **kwargs, 可变关键字参数, 以字典形式存放了很多关键字及参数. 调用时可传入
  • *args要放在**kwargs之前.
  • 本函数的*args, 允许传入多对x和y和一个可选的"格式控制字符串".
  • 本函数的**kwargs, 允许传入多个可选的关键字参数.

1. plt.plot(x, y) 

  • x为x轴数据, y为y轴数据。
  • x, y可传入(元组), [列表], np.array, pd.Series。
  • 也可同时传入多组。
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

#示例一:x为x轴数据, y为y轴数据
x=[3,4,5] # [列表]
y=[2,3,2] # x,y元素个数N应相同
plt.plot(x,y)
plt.show()


#示例二:x, y可传入(元组), [列表], np.array, pd.Series
x=(3,4,5) # (元组)
y1=np.array([3,4,3]) # np.array
y2=pd.Series([4,5,4]) # pd.Series
plt.plot(x,y1)

plt.plot(y2)  # x可省略,默认[0,1..,N-1]递增
plt.show() # plt.show()前可加多个plt.plot(),画在同一张图上


#示例三:可传入多组x, y
x=(3,4,5)
y1=np.array([3,4,3])
y2=pd.Series([4,5,4])

plt.plot(x,y1,x,y2) # 此时x不可省略
plt.show()

 结果示例:

【python】plt.plot() 函数绘制loss曲线【python】plt.plot() 函数绘制loss曲线【python】plt.plot() 函数绘制loss曲线

2. plt.plot(x, y, "格式控制字符串")

点和线的格式可以用"格式控制字符串"设置,"最多可以包括三部分, "颜色", "点型", "线型"。

2.1 "颜色"与"线型"

如果只控制"颜色", 格式控制字符串还可以输入英文全称, 如"red", 甚至是十六进制RGB字符串, 如"#FF0000". python可用的"颜色"大全

    =============    ===============================
    character        color
    =============    ===============================
    ``'b'``          blue 蓝
    ``'g'``          green 绿
    ``'r'``          red 红
    ``'c'``          cyan 蓝绿
    ``'m'``          magenta 洋红
    ``'y'``          yellow 黄
    ``'k'``          black 黑
    ``'w'``          white 白
    =============    ===============================
    =============    ===============================
    character        description
    =============    ===============================
    ``'-'``          solid line style 实线
    ``'--'``         dashed line style 虚线
    ``'-.'``         dash-dot line style 点画线
    ``':'``          dotted line style 点线
    =============    ===============================
#示例
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

color=['b','g','r','c','m','y','k','w']
linestyle=['-','--','-.',':']
dic1=[[0,1,2],[3,4,5]]
x=pd.DataFrame(dic1)
dic2=[[2,3,2],[3,4,3],[4,5,4],[5,6,5]]
y=pd.DataFrame(dic2)
# 循环输出所有"颜色"与"线型"
for i in range(2):
    for j in range(4):
        plt.plot(x.loc[i],y.loc[j],color[i*4+j]+linestyle[j]) 
plt.show()

输出结果: 

【python】plt.plot() 函数绘制loss曲线【python】plt.plot() 函数绘制loss曲线

2.2 "点型"

    =============    ===============================
    character        description
    =============    ===============================
    ``'.'``          point marker
    ``','``          pixel marker
    ``'o'``          circle marker
    ``'v'``          triangle_down marker
    ``'^'``          triangle_up marker
    ``'<'``          triangle_left marker
    ``'>'``          triangle_right marker
    ``'1'``          tri_down marker
    ``'2'``          tri_up marker
    ``'3'``          tri_left marker
    ``'4'``          tri_right marker
    ``'s'``          square marker
    ``'p'``          pentagon marker
    ``'*'``          star marker
    ``'h'``          hexagon1 marker
    ``'H'``          hexagon2 marker
    ``'+'``          plus marker
    ``'x'``          x marker
    ``'D'``          diamond marker
    ``'d'``          thin_diamond marker
    ``'|'``          vline marker
    ``'_'``          hline marker
    =============    ===============================
#示例
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

marker=['.',',','o','v','^','<','>','1','2','3','4','s','p','*','h','H','+','x','D','d','|','_','.',',']
dic1=[[0,1,2],[3,4,5],[6,7,8],[9,10,11],[12,13,14],[15,16,17]]
x=pd.DataFrame(dic1)
dic2=[[2,3,2.5],[3,4,3.5],[4,5,4.5],[5,6,5.5]]
y=pd.DataFrame(dic2)
# 循环输出所有"点型"
for i in range(6):
    for j in range(4):
        plt.plot(x.loc[i],y.loc[j],"b"+marker[i*4+j]+":") # "b"蓝色,":"点线
plt.show()

【python】plt.plot() 函数绘制loss曲线【python】plt.plot() 函数绘制loss曲线

 3. plt.plot(x, y, "格式控制字符串", 关键字=参数)

本函数的**kwargs, 允许传入多个可选的关键字参数

#示例
y=[2,3,2,4,5] 
# 青色,线宽10,星星,点尺寸50,点填充绿色,点边缘宽度6,点边缘青色
plt.plot(y,color="c",linewidth=10,marker="*",markersize=20,
         markerfacecolor="g",markeredgewidth=3,markeredgecolor="c")
plt.show()

【python】plt.plot() 函数绘制loss曲线

函数用法是总结的这篇文章和matplotlib.pyplot.plot()参数详解两篇

python中的颜色表文章来源地址https://www.toymoban.com/news/detail-463921.html

到了这里,关于【python】plt.plot() 函数绘制loss曲线的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 之plt.plot()的介绍以及使用

    plt.plot() 是Matplotlib库中用于绘制线图(折线图)的主要函数之一。它的作用是将一组数据点连接起来,以可视化数据的趋势、关系或模式。以下是 plt.plot() 的详细介绍: x :表示X轴上的数据点,通常是一个列表、数组或一维序列,用于指定数据点的水平位置。 y :表示Y轴上

    2024年02月07日
    浏览(44)
  • YOLOv5s训练结果result.txt绘制loss/mAP等曲线对比图

    引用代码 另外奉上各种线性颜色:参考 大概是够用了!!!

    2024年02月13日
    浏览(47)
  • Python-plt.plot画图坐标轴和图例如何显示希腊字母

    有时候在绘制一些函数图像时,需要坐标轴和图例显示希腊字母,如:α、η…… matplotlib是支持letax代码的,所以只需要在 plt.ylabel() 等语句中输入相应的letax代码即可 如:绘制一个正弦函数,纵坐标为希腊字母“η”(对应letax代码为eta),图例为“α=0.1” 可以表示为:la

    2024年04月14日
    浏览(40)
  • YOLOv5|YOLOv7|YOLOv8改进之实验结果(四):将多种算法的Loss精度曲线图绘制到一张图上,便于YOLOv5、v7系列模型对比实验获取更多精度数据,丰富实验数据

    💡该教程为改进YOLO高阶指南,属于 《芒果书》 📚系列,包含大量的原创首发改进方式🚀 💡更多改进内容📚可以点击查看:YOLOv5改进、YOLOv7改进、YOLOv8改进、YOLOX改进原创目录 | 老师联袂推荐🏆 💡 🚀🚀🚀本博客内含·改进源代码·,按步骤操作运行改进后的代码即可

    2023年04月17日
    浏览(54)
  • 概率密度函数曲线及绘制

    很多数据科学家在做回归模型评估的时候,不仅会去计算模型拟合优度R2,平均绝对误差还会去看测试集的每个样本偏差的分布情况,这个时候就需要用到概率密度函数曲线的知识了,通过绘制概率密度函数曲线图或者直方图可以很直观的看到测试集的所有样本的偏差分布情

    2023年04月21日
    浏览(39)
  • python绘制子图技巧——plt.subplot和plt.subplots、及坐标轴修改

    偶然发现 python(matplotlib) 中绘制子图有两种方法,一种是 plt.subplot ,另一种是 plt.subplots ,这篇博客说一下这两种方法的区别,用法,以及常用的一些函数。 plt.figure 的作用是定义一个大的图纸,可以设置图纸的大小、分辨率等,例如 plt.plot() 是直接在当前活跃的的axes上面

    2023年04月09日
    浏览(41)
  • 绘制系统响应函数的频率响应曲线

    在z变换中,对于系统响应函数H(z) 绘制频率响应曲线 注意点: 绘制零极点图的函数 zplane(B,A);%%B为分母的系数矩阵  A为分子的系数矩阵 第一个数为z^0 第二个数为z^-1的系数 以此类推 freqz(B,A) %%计算频率响应H(e^jw) angle(H) %%  绘制相频响应 实现代码如下: 绘制图像如下:  判断

    2024年02月12日
    浏览(40)
  • 【Python & 机器学习 基础】绘制 sigmoid 函数曲线 | exp:以e为底的指数函数(科普向)| 区块链 面试题:区块链技术中的“区块链浏览器”是什么?有什么作用?

      “谁都了解生存往往比命运还残酷,只是没人愿意认输,我们都在不断赶路,忘记了出路。”     🎯作者主页: 追光者♂🔥          🌸个人简介:   💖[1] 计算机专业硕士研究生💖   🌿[2] 2023年城市之星领跑者TOP1(哈尔滨)🌿   🌟[3] 2022年度博客之星人工智能领域

    2024年02月06日
    浏览(47)
  • 【Python_PyQtGraph 学习笔记(二)】基于PySide2和GraphicsLayoutWidget实现动态绘制数据曲线

    PyQtGraph的例程里基本都是一次性的获取数据并将其绘制为图形,然而在实际开发中大多需要对实时的数据进行图形化展示,这时候就需要对数据进行实时的更新和绘制。 在最近的项目中选用了 Pyside2来写GUI界面,PyQtGraph.GraphicsLayoutWidget来进行图形的绘制,下面简单介绍如何实

    2024年02月02日
    浏览(48)
  • 【Python】plt.title()函数

    plt.title() 是 matplotlib 库中用于设置图形标题的函数。 其中: label 是要设置的标题文本,可以是字符串类型或者是数学表达式。 fontdict 是一个可选的参数,用于设置标题的字体属性,例如字体名称、大小、颜色等。 loc 参数用于指定标题的位置,可以使用字符串(例如 ‘lef

    2024年02月07日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包