Python数据处理(三)-txt文件指定数据提取并可视化作图

系列文章:

1,20G文件,分类,放入不同文件,每个单独处理

2,数据的归类并处理

3,txt文件指定数据提取并可视化作图(本文)

4,.........

一,数据格式以及需求

         作为测试工程师,面对这种海量的数据,我们周末提取指定位置的数据并可视化其变化规律呢,excel当然是首选,方便快捷。但是那种几十万行甚至更多的数据的时候,手动操作就捉襟见肘了。

        于是我们需要python来自动化操作并完成。

         1,有的数据我们直接提取后不需要处理即可全部作图        

         2,有的数据,我们提取后,还需要分组(16,256等等),求最大最小,以及平均值再作图

二,分布实现需求

这个需求比较简单,思路简单清晰。

1,我们需要时间或者其他数据,正则表达式提取(提取方式有很多种,正则表达式只是其一)

2,提取的数据存入python的数据结构--列表(就能满足功能要求)

3,数据处理

4,作图

三,各个步骤

一,提取数据后直接作图

import matplotlib.pyplot as plt# 准备存储提取数据的列表
times = []# 打开文本文件并读取每一行
with open('./log/be_cycling_tBE.txt', 'r') as file:for line in file:# 找到"Time=&"和"&mS"之间的字符串start_index = line.find("Time=&")end_index = line.find("&mS", start_index)#start_index = line.find("&]=&")#end_index = line.find("&mS=", start_index)if start_index != -1 and end_index != -1:# 提取时间数据time_data = line[start_index + len("Time=&"):end_index].strip()# 将时间数据转换为数字并添加到列表中try:time_value = float(time_data)times.append(time_value)except ValueError:# 数据转换失败时忽略错误continue# 使用matplotlib绘制散点图
plt.scatter(range(len(times)), times, marker='.', color='blue')# 设置图表标题和轴标签
plt.title('Venezia_100K_blk64_time')
plt.xlabel('Line Number')
plt.ylabel('Time (ms)')# 显示图表
plt.show()

注释:

1,打开指定文件,并申明列表

2,for循环读取每一行数据,并作相应的数据处理

3,正则表达式,提取我们需要的指定数据并添加到列表中,同时获取列表的长度方便后面作图

4,直接用python的库函数,绘制散点图,没有对应库的,打开终端安装

5,作图时可在图上写出一些标记

 二,提取数据后处理后再作图

         这个就是提取完数据后需要处理过后再作图,比如下面的是提取完数据后,以256个数据为一组,求平均值和最值。

import matplotlib.pyplot as pltdef process_chunk(chunk):"""辅助函数,用于处理和分析一个数据块 (即16个值)."""# 将字符串值转换为浮点数float_chunk = [float(x) for x in chunk]# 计算最大值、最小值和平均值max_val = max(float_chunk)min_val = min(float_chunk)avg_val = sum(float_chunk) / len(float_chunk)return (max_val, min_val, avg_val)# 初始化列表用于存储各个分组的最大值、最小值和平均值
max_vals, min_vals, avg_vals = [], [], []# 定义计数器以跟踪当前处理的行数
counter = 0
# 定义一个临时列表存储当前正在处理的值组
current_chunk = []# 打开文本文件并逐行读取
with open('./log/PP_TIME.txt', 'r') as file:for line in file:# 查找 "&]=&" 和 "&mS" 之间的字符串start_index = line.find("&]=&")end_index = line.find("&mS", start_index)if start_index != -1 and end_index != -1:# 提取字符串并去掉空格time_data = line[start_index + len("&]=&"):end_index].strip()# 尝试将字符串转换为浮点数try:current_chunk.append(time_data)except ValueError:# 当转换失败时,忽略这个数据continue# 检查是否已收集了16个数据if len(current_chunk) == 256:max_val, min_val, avg_val = process_chunk(current_chunk)max_vals.append(max_val)min_vals.append(min_val)avg_vals.append(avg_val)# 清空当前的值组,为下一组数据做准备current_chunk = []# 更新计数器counter += 1# 如果需要可以打印进度# print(f'Processed {counter} lines...')# 散点图数据为每组的最大值、最小值和平均值
plt.scatter(range(len(max_vals)), max_vals, color='red', label='Max', marker='o')
plt.scatter(range(len(min_vals)), min_vals, color='blue', label='Min', marker='x')
plt.scatter(range(len(avg_vals)), avg_vals, color='green', label='Avg', marker='^')# 设置图表的标题和图例
plt.title('XXXXXXXXXXXXXXXXXXX')
plt.xlabel('Group Number')
plt.ylabel('Value')
plt.legend()# 显示图表
plt.show()

注释

1,定义一个小函数,子函数,用来单独处理每一组的数据,最大最小和平均值

2,回归上面的问题中,打开文件并申明定义列表,循环读取每一行

3,正则表达式,提取指定对应数据

4,用前面定义的子函数处理列表中的数据,每一组处理完记得清空以便于下一组

5,作图,同时可以加上需要的各种坐标信息,标题等。

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

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

相关文章

使用 kubeadm 部署k8s集群

一、所有节点系统初始化 1、常规初始化 2、内核版本升级以及内核限制文件参数修改 还可以考虑将旧版本的内核卸载 二、准备nginx负载均衡器和keepalived nginx四层代理: keepalived配置: nginx检测脚本: 三、所有节点部署docker&#xff0c…

Scala 的安装与使用

目录 1 安装 JDK 1.82 安装 Scala3 Scala 插件安装4 Hello Scala 案例 Windows环境安装 1 安装 JDK 1.8 可参见 Windows下安装JDK1.8详细步骤 2 安装 Scala 解压文件:scala-2.12.11.zip(解压目录要求无中文无空格) 配置环境变量 环境测试 如…

STM32 +合宙1.54“ 电子墨水屏(e-paper)驱动显示示例

STM32 合宙1.54“ 电子墨水屏(e-paper)驱动显示示例 📍相关篇《Arduino框架下ESP32/ESP8266合宙1.54“ 电子墨水屏(e-paper)驱动显示示例》🔖程序是从GooDisplay品牌下同型号规格墨水屏的示例程序参考Ardui…

2024牛客寒假算法基础集训营1(补题)

文章目录 ABCDEFGHIJKL A n的范围很小暴力直接 O ( n 3 ) O(n^3) O(n3)直接做就行。 我还傻的统计了一下前后缀&#xff0c;不过怎么写都行这道题。 #include <bits/stdc.h> #define int long long #define rep(i,a,b) for(int i (a); i < (b); i) #define fep(i,…

[WebUI Forge]ForgeUI的安装与使用 | 相比较于Auto1111 webui 6G显存速度提升60-75%

ForgeUI的github主页地址:https://github.com/lllyasviel/stable-diffusion-webui-forge Stable Diffusion WebUI Forge 是一个基于Stable Diffusion WebUI(基于Gradio)的平台,可简化开发、优化资源管理并加快推理速度。 “Forge”这个名字的灵感来自于“Minecraft Forge”…

拼多多上货API:自动化上架商品批量获取商品详情信息

随着电子商务的蓬勃发展&#xff0c;淘宝作为中国最大的在线购物平台之一&#xff0c;每天需要处理海量的商品上架和交易。为了提高工作效率&#xff0c;自动化上架商品和批量获取商品详情信息成为了许多商家和开发者的迫切需求。本文将详细介绍淘宝的API接口及其相关技术&…

GIS之深度学习02:Anaconda2019版本安装(py38)

Anaconda是一个专注于数据科学和机器学习的开源发行版&#xff0c;内置了丰富的工具和库&#xff0c;包括Python解释器、NumPy、SciPy、Pandas、Scikit-learn、TensorFlow等&#xff0c;使用户能够轻松进行科学计算和数据分析。其强大的包管理器conda简化了软件包的安装和环境管…

UI自动化测试:playwright工具(一):python环境下安装、UI录制使用(需要些代码能力)

一、python环境下安装playwright工具 1. 安装playwright库 pip install playwright -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com#至于镜像源,可以选,也可不选:#阿里云 http://mirrors.aliyun.com/pypi/simple/ #中国科技大学 https://py…

「优选算法刷题」:矩阵区域和

一、题目 给你一个 m x n 的矩阵 mat 和一个整数 k &#xff0c;请你返回一个矩阵 answer &#xff0c;其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和&#xff1a; i - k < r < i k, j - k < c < j k 且(r, c) 在矩阵内。 示例 1&#xff1…

UE4c++ ConvertActorsToStaticMesh

UE4c ConvertActorsToStaticMesh ConvertActorsToStaticMesh UE4c ConvertActorsToStaticMesh创建Edior模块&#xff08;最好是放Editor模块毕竟是编辑器代码&#xff09;创建UBlueprintFunctionLibraryUTestFunctionLibrary.hUTestFunctionLibrary.cpp:.Build.cs 目标:为了大量…

React回顾

一、基础 1、使用babel解析 2、不直接使用jsx&#xff0c;jsx写起来很繁琐 3、jsx语法规则 4、函数式组件的使用 5、函数式组件渲染 6、类组件渲染 7、类组件中事件调用this指向问题 8、类组件不能直接改变状态 9、props接收数据类型限制 类型限制放到类组件内部&#xff0c;用…

045-WEB攻防-PHP应用SQL二次注入堆叠执行DNS带外功能点黑白盒条件

045-WEB攻防-PHP应用&SQL二次注入&堆叠执行&DNS带外&功能点&黑白盒条件 #知识点&#xff1a; 1、PHP-MYSQL-SQL注入-二次注入&利用条件 2、PHP-MYSQL-SQL注入-堆叠注入&利用条件 3、PHP-MYSQL-SQL注入-带外注入&利用条件 演示案例&#xff1a…

区块链智能合约开发

一.区块链的回顾 1.区块链 区块链实质上是一个去中心化、分布式的可进行交易的数据库或账本 特征: 去中心化&#xff1a;简单来说&#xff0c;在网络上一个或多个服务器瘫痪的情况下&#xff0c;应用或服务仍然能够持续地运行&#xff0c;这就是去中心化。服务和应用部署在…

一款开源.NET WPF界面库介绍

一款开源.NET WPF界面库介绍 这是一个WPF版的Layui前端UI样式库&#xff0c;该控件库参考了Web版本的LayUI风格&#xff0c;利用该控件库可以完成现代化UI客户端程序&#xff0c;让你的客户端看起来更加简洁丰富又不失美感 如何使用 步骤一 : 添加LayUI.Wpf Nuget包; Inst…

物业智能水电抄表管理系统

物业智能水电抄表管理系统是物业管理行业的关键技术之一&#xff0c;其结合了智能化、远程监控和数据分析等功能&#xff0c;为物业管理公司和业主提供了高效、精准的水电抄表管理解决方案。该系统具有多项优势&#xff0c;能够提升物业管理效率&#xff0c;降低成本&#xff0…

苍穹外卖-day12 - 工作台 - Apache POI - 导出运营数据Excel报表

课程内容 工作台 Apache POI 导出运营数据Excel报表 功能实现&#xff1a;工作台、数据导出 工作台效果图&#xff1a; 数据导出效果图&#xff1a; 在数据统计页面点击数据导出&#xff1a;生成Excel报表 1. 工作台 1.1 需求分析和设计 1.1.1 产品原型 工作台是系统运营…

当Web3叙事寒冬到来,游戏是否是冬日里的“一把火”?

出品&#xff5c;欧科云链研究院 作者&#xff5c;Jason Jiang 以太坊创始人Vitalik在2019年曾说&#xff1a;金融与游戏会是区块链最先落地的场景。 在DeFi金融创新驱动上个周期后&#xff0c;沉寂近两年的Web3游戏板块&#xff0c;如今似乎也在复苏。无论是频繁获得融资&a…

【推荐算法系列五】DeepFM 模型

文章目录 参考资料Sparse FeaturesDense EmbeddingsFM LayerHidden LayerOutput Units 优缺点DeepFM 的优点DeepFM 自身的缺点。 参考资料 DeepFM 中关于 整个发展过程&#xff0c; FM, PNN, wide&deep 的描述很给力。 所以FM在其中的含义就是low-order, deep 就是所谓的 …

IT廉连看——Uniapp——页面样式与布局

IT廉连看——Uniapp——页面样式与布局 目标&#xff1a; 了解样式与布局的规范 熟记px和rpx的区别 全局样式与index样式的区别 一、查看uniapp框架简介——尺寸单位 px尺寸单位的使用是贯穿始终的。 [IT廉连看] 二、尺寸单位——实操效果 1、打开Hbuilder X并进入in…

type may not be empty [type-empty]

原因是使用了规范commit信息的工具&#xff0c;你的提交信息不符合规范&#xff0c;所以被拒绝了 commit规范工具 commitlinthusky 解决方式一&#xff1a; 修改提交信息&#xff0c; 使其符合规范 git commit -m "feat: 新功能"使用Git Gui的使用以下格式写提交…