显示数量以及坐标区间

news2024/9/24 11:43:24
import re
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

# 动态加载字体文件
font_path = '/usr/local/sunlogin/res/font/wqy-zenhei.ttc'  # 替换为实际字体路径
my_font = FontProperties(fname=font_path)

# 定义日志文件路径
log_file_path = 'number.txt'
output_file_path = 'backward_point_cloud_stats.txt'

# 正则表达式匹配点云数量和类型
pattern = re.compile(r'\[(\d+) 3 \d+\]')

# 存储后向点云数量的列表
backward_point_cloud_counts = []

# 读取日志文件
with open(log_file_path, 'r') as file:
    for line in file:
        matches = pattern.findall(line)
        if matches:
            backward_point_cloud_counts.extend([int(count) for count in matches])

# 检查数据提取
if backward_point_cloud_counts:
    print(f"成功提取到 {len(backward_point_cloud_counts)} 个后向点云数量。")
else:
    print("没有找到后向点云的相关数据。")

# 统计计算
max_value = np.max(backward_point_cloud_counts)
min_value = np.min(backward_point_cloud_counts)
mean_value = np.mean(backward_point_cloud_counts)
variance_value = np.var(backward_point_cloud_counts)
lower_percentile = np.percentile(backward_point_cloud_counts, 50)
upper_percentile = np.percentile(backward_point_cloud_counts, 95)

# 打印统计结果
print(f"最大值: {max_value}")
print(f"最小值: {min_value}")
print(f"平均值: {mean_value}")
print(f"方差: {variance_value}")
print(f"90%的数据位于区间 [{lower_percentile}, {upper_percentile}] 之间")

# 保存结果
with open(output_file_path, 'w') as output_file:
    output_file.write("后向点云数量统计结果:\n")
    output_file.write(f"最大值: {max_value}\n")
    output_file.write(f"最小值: {min_value}\n")
    output_file.write(f"平均值: {mean_value}\n")
    output_file.write(f"方差: {variance_value}\n")
    output_file.write(f"90%的数据位于区间 [{lower_percentile}, {upper_percentile}] 之间\n")

# 可视化
# 生成以 1000 为间隔的 bins
bin_edges = np.arange(0, max_value + 1000, 1000)
counts, bins, patches = plt.hist(backward_point_cloud_counts, bins=bin_edges, edgecolor='black')

# 过滤掉频次为0的区间
non_zero_bins = bins[:-1][counts > 0]
non_zero_counts = counts[counts > 0]

# 绘制非零频次柱状图
plt.clf()  # 清除之前的图
plt.bar(non_zero_bins + 500, non_zero_counts, width=1000, edgecolor='black')

# 添加频次标签
for count, bin_edge in zip(non_zero_counts, non_zero_bins):
    plt.text(bin_edge + 500, count, f'{int(count)}', ha='center', va='bottom', fontproperties=my_font)

# 设置标题和标签
plt.title('后向点云数量分布', fontproperties=my_font)
plt.xlabel('点云数量', fontproperties=my_font)
plt.ylabel('频率', fontproperties=my_font)
plt.grid(True)

# 设置横轴刻度,只显示非零频次的区间
plt.xticks(non_zero_bins + 500, [f'{int(bin_edge)}' for bin_edge in non_zero_bins], fontproperties=my_font)

plt.show()

在这里插入图片描述

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

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

相关文章

【折腾笔记】雷池WAF+FRP+Nginx实现安全可靠的内网穿透

前言 在网上看了许多关于WAFFRPNginx的方式来保护内网穿透的Web服务,但是在网上搜寻的结果都是将WAF部署在了源站上面,由于我的Web服务都是部署在NAS上面,然后使用Frp来穿透访问的,我认为WAF应该部署在服务器上面比较合适&#x…

基于STM32F103C8T6单片机的农业环境监测系统设计

本设计是基于STM32F103C8T6单片机的农业环境监测系统,能够完成对作物的生长环境进行信息监测和异常报警,并通过手机APP来实现查看信息和设定阈值的功能。为了实现设计的功能,该系统应该有以下模块:包括STM32单片机模块、水环境PH值…

css禁止图片保存,CSS中的图片保存方法

“css中的图片”指的就是镶在CSS样式表中的图片。在我们用在浏览器保存网页时,很多时候,下载网页里的图片都下载不到,这样的话就会使网页非常不美观。所以,今天小编就给大家介绍集中保存方法。 以下是几种保存方法。 (一)使用网…

Unity 设计模式 之 行为型模式 -【中介者模式】【迭代器模式】【解释器模式】

Unity 设计模式 之 行为型模式 -【中介者模式】【迭代器模式】【解释器模式】 目录 Unity 设计模式 之 行为型模式 -【中介者模式】【迭代器模式】【解释器模式】 一、简单介绍 二、中介者模式(Mediator Pattern) 1、什么时候使用中介者模式 2、使用…

java项目之基于springboot的医院资源管理系统源码

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的医院资源管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者:风…

计算存款利息-C语言

1.问题: 假设有本金1000元,想存一年,有三种方法可选择: A活期,年利率为0.0036; B一年期定期,年利率为0.0225; C存两次半年定期,年利率为0.0198。 请分别计算出一年后…

Ubuntu的基本用法与指令(为后面学习ROS打基础)

目录 0.声明:此博客的部分内容来自B站up主 机器人工匠阿杰,欢迎大家前往up主视频区学习(本人正在跟随此up主的视频学习无人机的部分相关知识) 1.win空格(切换中英文) 2.终端指令 1.ls:显示主…

ATTCK实战系列-Vulnstack三层网络域渗透靶场(一)

ATT&CK实战系列-Vulnstack三层网络域渗透靶场(一) 一、环境搭建1.1 靶场拓扑图1.2 靶场下载链接1.3 虚拟机配置1.3.1 Windows 7 (web服务器)1.3.2 Windows 2008 (域控)1.3.3 Win2k3 (域内主机) 二、外网打点突破2.1 信息搜集2.2 phpmyadmin 后台 Get…

netfilter和iptables--netfilter源码篇

netfilter和iptables–netfilter源码篇 防火墙是保护服务器和基础设施的重要工具,在Linux系统下,目前广泛使用的防火墙工具是iptables,但实际进行规则实施并产生实际作用的是Netfilter,iptables与内核中的netfilter框架中Hook协同…

❤Node11-登录人token信息接口

❤Node11-登录人token信息接口​ 上一章我们已经从登录部分拿到了用户的登录jwt返回的token信息,接下来我们就通过token来换取用户信息 这里我们可以将其理解为一种加密以及解密的思想来思考这个jwt和token的关系,token就是一个加密的字符串&#xff0c…

【JavaEE】——内存可见性问题

阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你! 目录 一:内存可见性问题 1:代码解释 2:结果分析 (1&#xf…

《现代畜牧兽医》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问:《现代畜牧兽医》是不是核心期刊? 答:不是,是知网收录的第一批认定 学术期刊。 问:《现代畜牧兽医》级别? 答:省级。主管单位:辽宁省科学技术协会 …

vue2实现提取字符串数字并修改数字样式(正则表达式)

如果你要在循环中提取 item.companyName 中的数字&#xff0c;并且希望为这些数字改变颜色和边距&#xff0c;可以对每个 item 进行处理。此处是一个实现示例&#xff1a; <template> <div> <div class"box" v-for"(item, index) in coldBase…

学校气膜体育馆:低成本、高效率的灵活运动空间—轻空间

在当前教育设施的升级中&#xff0c;传统体育馆的建设往往面临长时间、高成本、以及繁琐的审批流程等诸多挑战。然而&#xff0c;学校无需再为这些问题烦恼&#xff0c;只需选择气膜结构的体育馆&#xff0c;就能快速、高效地解决体育场地需求。气膜体育馆凭借其灵活的设计和高…

Java项目实战II基于SSM的国外摇滚乐队交流和周边售卖系统的设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者 一、前言 随着互联网技术的飞速发展&#xff0c;信息传播的广度和深度不断拓展&#xff0c;为各行业的创新发展…

二分查找算法(4) _搜索插入位置

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 二分查找算法(4) _搜索插入位置 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 …

太爱这5本书了,建议所有大模型人去翻烂它❗

要说现在最热门的技术&#xff0c;可谓非大模型莫属&#xff01; 不少小伙伴都想要学习大模型技术&#xff0c;转战AI领域&#xff0c;以适应未来的大趋势&#xff0c;寻求更有前景的发展~~ 然而&#xff0c;在学习大模型技术这条道路上&#xff0c;却不知道如何进行系统的学…

无人机飞手培训校企合作特训技术详解

随着无人机技术的飞速发展&#xff0c;其在航拍、农业、测绘、救援等多个领域的应用日益广泛&#xff0c;市场对高素质无人机飞手的需求急剧增加。为满足这一需求&#xff0c;促进教育与产业深度融合&#xff0c;无人机飞手培训校企合作模式应运而生。本文将从确定合作目标、共…

可视化大屏看阿里,阿里出品,必属精品。

阿里云有自己的可视化平台——dataV&#xff0c;经常会出一些高颜值、强交互的大屏&#xff0c;本期为大家分享一波。

HTML、CSS

初识web前端 web标准 Web标准也称为网页标准&#xff0c;由一系列的标准组成&#xff0c;大部分由W3C (World Wide Web Consortium&#xff0c;万维网联盟) 负责制定。三个组成部分: HTML: 负责网页的结构(页面元素和内容)。CSS: 负责网页的表现(页面元素的外观、位置等页面样…