python读取.txt文件中某些关键字后面的内容 并根据该数据画图

news2024/11/18 3:27:19

感谢一下悦姐帮忙

import re

#先把文件读进来,用read读入的是字符串,readlines是list
with open('resok.txt') as f:
    txt = f.read()


dataset = r'5low:.*|5mix:.*|5normal:.*'
para = r'MAE: (.{6})'#意思是MAE: 后面的六个东西
row_data = re.findall(dataset,txt)#正则化找到要读的内容,先找到基本的行(dataset),在找到行里的内容(para)
new_row_data = '\n'.join(row_data)#list转化为字符串
final_data = re.findall(para,new_row_data)

# print(dataset)
# print('\n')
# print(new_row_data)
# print('\n')
# print(final_data)
print(len(final_data))#检查一下个数看对不对

然后画图,其实两个文档可以放在一个里面

import matplotlib
import matplotlib.pyplot as plt
import numpy as np
from readdata import final_data

#要画的标签以及每个标签对应的值
labels = [ 'CONet', 'DANet','DCF', 'SP-Net', 'VST', 'CDINet','DFM-Net','TriTransNet','cmSalGAN','D3Net','BiANet','DLMNet','CCAFNet','C2DFNet','MobileSal','JL-DCF','SwinNet','A2S-v2','HRTransNet']
Overall = []
low = []
normal = [] 


#print(final_data)
#把之前读进来的数据分给上面的对应的值
for i in range(len(final_data)):
    final_data[i]=float(final_data[i])
    if i % 3 == 0:
        low.append(final_data[i])
    if i % 3 == 1:
        Overall.append(final_data[i])
    if i % 3 == 2:
        normal.append(final_data[i])


# print(Large)
# print('\n')
# print(Middle)
# print('\n')
# print(Overall)
# print('\n')
# print(Small)
# print('\n')


x = np.arange(len(labels))  # 标签位置
width = 0.2  # 柱状图的宽度,可以根据自己的需求和审美来改

fig, ax = plt.subplots()


rects1 = ax.bar(x - width, low, width, label='Low-light scenes',color=(33/255,158/255,188/255))
rects2 = ax.bar(x + 0.00, normal, width, label='Sunny scenes',color=(19/255,103/255,131/255))
rects3 = ax.bar(x + width, Overall, width, label='Overall',color=(2/255,48/255,74/255))



#为y轴、标题和x轴等添加一些文本。
# ax.set_ylabel(r'$F^{\omega}_{\beta}$', fontsize=12)
# ax.set_xlabel('Models', fontsize=12)
# ax.set_title('Result of 'r'$F^{\omega}_{\beta}$')
# ax.set_xticks(x)
# ax.set_xticklabels(labels,rotation=45)
# ax.set_ylim(0.4,1.1)
# ax.legend(loc='upper right')
ax.set_ylabel('MAE', fontsize=12)
ax.set_xlabel('Models', fontsize=12)
ax.set_title('Result of MAE')
ax.set_xticks(x)
ax.set_xticklabels(labels,rotation=45)
#可以自己控制
#轴的显示范围
#ax.set_ylim(0,0.24)
ax.legend(loc='upper right')

# def autolabel(rects):
#     """在*rects*中的每个柱状条上方附加一个文本标签,显示其高度"""
#     for rect in rects:
#         height = rect.get_height()
#         ax.annotate('{}'.format(height),
#                     xy=(rect.get_x() + rect.get_width() / 2, height),
#                     xytext=(0, 3),  # 3点垂直偏移
#                     textcoords="offset points",
#                     ha='center', va='bottom')

# autolabel(rects1)
# autolabel(rects2)
# autolabel(rects3)
# autolabel(rects4)

#fig.tight_layout()
#plt.xticks(labels, labels, rotation=30)
plt.show()

最后贴个图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/984664.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

6个免费图片素材库,高清无水印、无版权

推荐6个免费高清图片素材库,商用也可以,无需担心版权问题,收藏走一波~ 1、菜鸟图库 https://www.sucai999.com/pic.html?vNTYwNDUx 网站主要为新手设计师提供免费素材,这些素材的质量都很高,类别也很多,…

每日一练 | 网络工程师软考真题Day31

阅读以下说明,答复以下【问题1】至【问题7】 【说明】 某网络拓扑结构如图3-1所示。网络A中的DNS_Server1和网络B中的DNS_Server2分别安装有Windows Server 2003并启用了DNS效劳。DNS_Server1中安装有IIS6.0,建立了一个域名为 abc 的Web站点。 图3-1 【…

pytorch再次学习

目录 数据可视化切换设备device定义类打印每层的参数大小自动微分计算梯度禁用梯度追踪优化模型参数 模型保存模型加载 数据可视化 import torch from torch.utils.data import Dataset from torchvision import datasets from torchvision.transforms import ToTensor import…

Nginx中实现自签名SSL证书生成与配置

文章目录 一.相关介绍1.生成步骤2.相关名词介绍 二.Nginx中实现自签名SSL证书生成与配置1.私钥生成2.公钥生成3.生成解密的私钥key4.签名生成证书5.配置证书并验证6.登录 一.相关介绍 1.生成步骤 (1)生成私钥(Private Key)&…

elementUI——el-table自带排序使用问题

问题 排序表格默认第一列按降序排(状态1),当点击其他列后(状态2),改变日期,触发表格数据更新,发现列的排序还点亮在之前的操作上,没有按照默认来(回到状态1&a…

运筹系列85:求解大规模tsp问题的julia代码

1. 大规模tsp问题的挑战 数学模型和精确解法见《运筹系列65:TSP问题的精确求解法概述》和《运筹系列80:使用Julia精确求解tsp问题》: variable(m, x[1:n,1:n], Bin,Symmetric) # 0-1约束 objective(model, Min, sum(x.*distmat)/2) constraint(model, …

Linux——线程详解(一)

索引 初识线程1.inux下的线程2.再谈进程3.理解页表4. 再次理解虚拟到物理的转化 线程的控制1.线程的创建2.线程异常3.验证pthread_join 的第二个参数4.线程的退出方式5. 线程的公有和私有6.pthread_t 与线程独立栈7.线程的局部性存储8.线程分离 初识线程 1.inux下的线程 之前了…

通过RTSP协议接入RTSP流媒体服务器EasyNVR视频监控汇聚平台的设备显示离线是什么原因?

EasyNVR安防视频云服务是基于RTSP/Onvif协议接入的视频平台,可支持将接入的视频流进行全平台、全终端的分发,分发的视频流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等。平台丰富灵活的视频能力,可应用在智慧校园、智慧工厂、智慧水利等…

028:vue上传解析excel文件,列表中输出内容

第028个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…

静态路由 网络实验

静态路由 网络实验 拓扑图初步配置R1 ip 配置R2 ip 配置R3 ip 配置查看当前的路由表信息查看路由表信息配置静态路由测试 拓扑图 需求:实现 ip 192.168.1.1 到 192.168.2.1 的通信。 初步配置 R1 ip 配置 system-view sysname R1 undo info-center enable # 忽略…

超图聚类论文阅读1:Kumar算法

超图聚类论文阅读1:Kumar算法 《超图中模块化的新度量:有效聚类的理论见解和启示》 《A New Measure of Modularity in Hypergraphs: Theoretical Insights and Implications for Effective Clustering》 COMPLEX NETWORKS 2020, SCI 3区 具体实现源码见…

【SWT】 Button 处理 Checkbox 按钮的选中与反选事件

介绍: 在使用 Java SWT(Standard Widget Toolkit)创建图形用户界面时,经常需要处理按钮的选中和反选事件。本文将介绍如何通过添加 SelectionListener 监听器来实现按钮选中与反选事件的处理,并相应地修改相关变量的值…

2023国赛数学建模B题思路分析 - 多波束测线问题

# 1 赛题 B 题 多波束测线问题 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀 速直线传播, 在不同界面上产生反射, 利用这一原理,从测量船换能器垂直向海底发射声波信 号,并记录从声波发射到…

【MySQL系列】MySQL的事务管理的学习(一)_ 事务概念 | 事务操作方式 | 事务隔离级别

「前言」文章内容大致是MySQL事务管理。 「归属专栏」MySQL 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、事务概念二、事务的版本支持三、事务提交方式四、事务常见的操作方式4.1 事务正常操作4.2 事务异常验证 五、事务隔离级别5.1 查看与设置隔离性5.2 读未提交&…

flutter报错-cmdline-tools component is missing

安装完androidsdk和android studio后,打开控制台,出现错误 解决办法 找到自己安装android sdk的位置,然后安装上,并将下面的勾选上 再次运行 flutter doctor 不报错,出现以下画面 Doctor summary (to see all det…

视频融合平台EasyCVR综合管理平台加密机授权报错invalid character是什么原因

视频融合平台EasyCVR综合管理平台具备视频融合汇聚能力,作为安防视频监控综合管理平台,它支持多协议接入、多格式视频流分发,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包…

Java版 招投标系统简介 招投标系统源码 java招投标系统 招投标系统功能设计

项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及…

【pytorch】数据加载dataset和dataloader的使用

1、dataset加载数据集 dataset_tranform torchvision.transforms.Compose([torchvision.transforms.ToTensor(),])train_set torchvision.datasets.CIFAR10(root"./train_dataset",trainTrue,transformdataset_tranform,downloadTrue) test_set torchvision.data…

高德地图,绘制矢量图形并获取经纬度

效果如图 我用的是AMapLoader这个地图插件,会省去很多配置的步骤,非常方便 首先下载插件,然后在局部引入 import AMapLoader from "amap/amap-jsapi-loader";然后在methods里面使用 // 打开地图弹窗mapShow() {this.innerVisible true;this.$nextTick(() > {…

祝贺!Databend Cloud 入驻 AWS 云市场

关于 Databend Cloud Databend Cloud 是基于开源云原生数仓项目 Databend 打造的一款易用、低成本、高性能的新一代大数据分析平台,提供一站式 SaaS 服务,免运维、开箱即用。 Databend Cloud 架构如下: 存储层完全面向对象存储而设计。 计算…