python plt 画图实战

2023-05-16

matplotlib.pyplot 画图实战

如果你想将神经网络的训练结果,清晰地呈现出来,不妨看看这篇文章!
技术要点:
1.一张figure呈现一个横坐标对应多个纵坐标的曲线图
2.设置标题/横纵坐标/图例
3.绘制一个点/垂直于X轴的直线
样例一

import re
import matplotlib.pyplot as plt

strings = ["0 loss: tensor(0.0028, device='cuda:0')",
           "1 loss: tensor(0.0020, device='cuda:0')",
           "2 loss: tensor(0.0016, device='cuda:0')",
           "3 loss: tensor(0.0013, device='cuda:0')",
           "4 loss: tensor(0.0011, device='cuda:0')",
           "5 loss: tensor(0.0011, device='cuda:0')",
           "6 loss: tensor(0.0010, device='cuda:0')",
           "7 loss: tensor(0.0010, device='cuda:0')",
           "8 loss: tensor(0.0010, device='cuda:0')",
           "9 loss: tensor(0.0008, device='cuda:0')",
           "10 loss: tensor(0.0009, device='cuda:0')",
           "11 loss: tensor(0.0009, device='cuda:0')",
           "12 loss: tensor(0.0008, device='cuda:0')",
           "13 loss: tensor(0.0010, device='cuda:0')",
           "14 loss: tensor(0.0007, device='cuda:0')",
           "15 loss: tensor(0.0007, device='cuda:0')",
           "16 loss: tensor(0.0007, device='cuda:0')",
           "17 loss: tensor(0.0007, device='cuda:0')",
           "18 loss: tensor(0.0006, device='cuda:0')",
           "19 loss: tensor(0.0006, device='cuda:0')",
           "20 loss: tensor(0.0006, device='cuda:0')",
           "21 loss: tensor(0.0006, device='cuda:0')",
           "22 loss: tensor(0.0006, device='cuda:0')",
           "23 loss: tensor(0.0006, device='cuda:0')",
           "24 loss: tensor(0.0005, device='cuda:0')",
           "25 loss: tensor(0.0005, device='cuda:0')",
           "26 loss: tensor(0.0005, device='cuda:0')",
           "27 loss: tensor(0.0005, device='cuda:0')",
           "28 loss: tensor(0.0005, device='cuda:0')",
           "29 loss: tensor(0.0005, device='cuda:0')",
           "30 loss: tensor(0.0006, device='cuda:0')"]

regex1 = re.compile(r'loss: tensor\((.*), device')

epoch = [i for i in range(31)]
loss = []

for string in strings:
    match1 = regex1.search(string)
    loss.append(float(match1.groups(0)[0]))

print(epoch, loss, sep='\n')

plt.figure()
plt.plot(epoch, loss, 'r--', label='Loss')
plt.scatter(29, loss[29], color='yellow', label='Epoch:29')
plt.title("AE")
plt.xlabel("Epoch")
plt.xlim(0, epoch[-1])
plt.legend(loc=0)  # 绘制图例 loc表示图例位置 0表示自适应
plt.show()

在这里插入图片描述
样例二

import re
import matplotlib.pyplot as plt

strings = ['Epoch:0 Loss:1.4710358381271362 Train_acc:0.31544 Test_acc:0.4004',
           'Epoch:1 Loss:0.9353103637695312 Train_acc:0.52364 Test_acc:0.542',
           'Epoch:2 Loss:1.0960962772369385 Train_acc:0.64252 Test_acc:0.6594',
           'Epoch:3 Loss:0.9258540868759155 Train_acc:0.71328 Test_acc:0.6747',
           'Epoch:4 Loss:0.5317944884300232 Train_acc:0.76936 Test_acc:0.6915',
           'Epoch:5 Loss:0.5205800533294678 Train_acc:0.81624 Test_acc:0.7456',
           'Epoch:6 Loss:0.3029361069202423 Train_acc:0.86136 Test_acc:0.7808',
           'Epoch:7 Loss:0.29799553751945496 Train_acc:0.9004 Test_acc:0.7831',
           'Epoch:8 Loss:0.18622468411922455 Train_acc:0.93372 Test_acc:0.7966',
           'Epoch:9 Loss:0.11882748454809189 Train_acc:0.95552 Test_acc:0.7936',
           'Epoch:10 Loss:0.20242604613304138 Train_acc:0.96818 Test_acc:0.789',
           'Epoch:11 Loss:0.12406215816736221 Train_acc:0.97592 Test_acc:0.7479']

regex1 = re.compile(r'Epoch:(.*) Loss:')
regex2 = re.compile(r'Loss:(.*) Train_acc:')
regex3 = re.compile(r'Train_acc:(.*) Test_acc:')
regex4 = re.compile(r'Test_acc:(.*)')

epoch = []
loss = []
train_acc = []
test_acc = []

for string in strings:
    match1 = regex1.search(string)
    match2 = regex2.search(string)
    match3 = regex3.search(string)
    match4 = regex4.search(string)
    epoch.append(int(match1.groups(0)[0]))
    loss.append(float(match2.groups(0)[0]))
    train_acc.append(float(match3.groups(0)[0]))
    test_acc.append(float(match4.groups(0)[0]))

print(epoch, loss, train_acc, test_acc, sep='\n')

plt.figure()
plt.plot(epoch, loss, 'r--', label='Loss')
plt.plot(epoch, train_acc, 'b--', label='Train_acc')
plt.plot(epoch, test_acc, 'y--', label='Test_acc')
plt.axvline(8, color='orchid', linestyle='-', label='Epoch:8')  # plt.axhline():水平横线 plt.axvline():竖直纵线
plt.title("ResNet18")
plt.xlabel("Epoch")
plt.xlim(0, epoch[-1])
plt.legend(loc=0)  # 绘制图例 loc表示图例位置 0表示自适应
plt.show()

在这里插入图片描述
参考文章如下:

python3.x plt颜色和形状随笔
https://zhuanlan.zhihu.com/p/35270196

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python plt 画图实战 的相关文章

随机推荐

  • python爬取豆瓣租房信息

    文章目录 任务描述完整代码运行结果 任务描述 使用python爬虫 xff0c 实现获取豆瓣 北京租房 的租房信息 xff0c 并筛选适合个人的房源存入Excel 使用方法都写在注释里了 xff0c 请认真阅读哦 完整代码 span cla
  • Hadoop集群权限框架 Ranger2.1.0兼容Hadoop3.2.4部署

    文章目录 源码修改执行打包部署界面可能遇到的问题其他帮助命令 Ranger2 1 0源码兼容的是Hadoop3 1 0 本文章基于Hadoop3 2 4 xff0c 对Ranger2 1 0做变动 xff0c 打包部署 xff0c 以及遇到
  • 修复Microsoft Office的Word、Excel、PPT丢失图标

    文章目录 打开注册表Word注册表Excel注册表PPT注册表修复 使用注册表方式修复 xff0c 删除Word Excel PPT的对应文件夹 xff0c 那个丢失 xff0c 就删除那个 xff0c 然后修复 打开注册表 Windows
  • ambari2.7.5集群中安装 ranger2.1.0 策略没有自动创建,例如hadoop

    问题 ambari2 7 5集群中安装 ranger2 1 0 策略没有自动创建 xff0c 例如hadoop的 xff08 实际版本和集群在这里都没有用 xff09 现象 问题日志 span class token number 2023
  • 关于postman的请求参数的格式问题

    版权声明 xff1a 创作不易 xff0c 转载请附上本文地址https blog csdn net weixin 40375601 article details 85121974 注意点 xff1a 1 GET请求 2 参数格式为par
  • Specification中一个条件用或者表示(criteriaBuilder.or)

    Specification spec 61 root criteriaQuery criteriaBuilder gt List lt Predicate gt predicate 61 new ArrayList lt gt Predic
  • 在高德地图使用: AMap is not defined

    高德模板原版引入 xff1a lt script language 61 34 javascript 34 src 61 34 webapi amap com maps v 61 1 4 15 amp key 61 43b2dae85b7a
  • lottie动画使用

    1 安装 span class token function npm span i span class token parameter variable save span vue lottie 2 main js 中引入 span cl
  • Kotlin 开发Android app(十):Android控件绑定ViewBinding

    上一节中 xff0c 我们知道了Android的布局 xff0c 这种把界面和逻辑控制分开 xff0c 是编程里很好的分离方式 xff0c 也大大的解耦了界面和逻辑控制 xff0c 使得编程的逻辑不在和界面挂钩 有了界面的布局 xff0c
  • 在GitHub中绑定自己的域名,并实现https访问

    购买域名 由于项目的需要 xff0c 需要建一个网站来展现一些工具的信息 xff0c 就准备购买一个域名来放置自己的工具 购买域名比较简单我们先放着 xff0c 一个重要的问题是买哪个域名 选择一个好的域名是非常重要的 以下是一些选择好域名
  • 【hive】基于Qt5和libuv udp 的lan chat

    作者已经不更新了 但是很棒 在线用户列表 聊天窗口 主程序 单独的网络线程 network thread data管理关联网络管理的 程序update升级更新 和消息收到 即可
  • 两则预防crontab重复执行任务策略

    案例分析 前台异步上传文件到云端后台cron 10 usr local bin php path to upload php gt gt tmp apkqueue log 有时候上传一个文件到云端会很耗时 xff0c 一个cron还没有跑完
  • Windows10 Server 2012 2016 2019系统自动登录设置

    本教程适用于Windows Server 2008 2012 2016 2019服务器操作系统 Windows10的 xff1a 1909 1903 1809 1803及以下的版本 Windows电脑设置空密码风险很大 xff0c 设置了密
  • HAL库+环形队列(CFIFO)+Usart1+DMA数据缓存收发

    目录 一 参考文档 二 源代码 三 结构说明 四 原理讲解 五 代码讲解 4 1循环队列 CFIFO 代码 4 1 1 xff1a cifio h 4 1 1 xff1a cifio c 4 2循环队列 CFIFO 43 DMA实现USAR
  • linux登陆远程服务器的方式

    1 使用ssh设置好之后远程登录 xff1b 2 使用linux命令远程登录 xff1a 在macOS中 Linux系统同样适用 xff0c 打开终端 xff0c 输入ssh username 64 host就可以登录远程主机了 这里use
  • (计算机组成原理)Cache和主存之间的映射方式

    地址映射变换机构是将CPU送来的主存地址转换为Cache地址 由于贮存和Cache的块大小相同 xff0c 块内地址都是相对于快的起始地址的偏移量 xff08 即低位地址相同 xff09 xff0c 因此地址变换主要是主存块号与Cache块
  • 对于典型数据集,不同神经网络分类器的精确度排序

    不同神经网络分类器的精确度排序 包括如下典型数据集 xff1a MNIST CIFAR 10 CIFAR 100 STL 10 SVHN the website of the current state of the art in obje
  • CCF 202012-2 期末预测之最佳阈值 python

    CCF 202012 2 期末预测之最佳阈值 python 100 这道题对时间进行了限制 xff0c 所以要想一次遍历得出结果 xff0c 就应该思考 xff01 样例输入 安全指数011357挂科情况001111 思路详解 lt 前提
  • failed to open X11 display

    kali xff1a failed to open X11 display 在使用kali的rdeshtop进行远程桌面时 xff0c 出现了如下错误 xff1a root 64 kali span class token comment
  • python plt 画图实战

    matplotlib pyplot 画图实战 如果你想将神经网络的训练结果 xff0c 清晰地呈现出来 xff0c 不妨看看这篇文章 xff01 技术要点 xff1a 1 一张figure呈现一个横坐标对应多个纵坐标的曲线图 2 设置标题