整理数据制作 直方图,箱须图,概率密度估计(KDE)图

news/2025/10/5 12:29:23/文章来源:https://www.cnblogs.com/jyjingyuer/p/19126465

1.导入库和设置
import math
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei'] # 设置中文字体,作用设置 matplotlib 使用中文字体显示文本

rcParams:matplotlib 的配置参数字典,用于控制图表的各种默认设置

'font.sans-serif':指定无衬线字体族

['SimHei']:字体列表,SimHei 是 Windows 系统自带的中文字体"黑体"

plt.rcParams['axes.unicode_minus'] = False # 解决负号显示问题

'axes.unicode_minus':控制坐标轴负号的显示方式

False:使用 ASCII 的减号 -,而不是 Unicode 的负号

2.数据准备
z = [6.0, 5.9, 3.5 , 2.9 , 8.7 , 7.9 , 7.1 , 5.0 , 5.2 , 3.9,
3.7, 6.1, 5.8, 4.1, 5.8, 6.4, 3.8, 4.9, 5.7, 5.5,
6.9, 4.0 , 4.8, 5.1, 4.3, 5.4, 6.8 , 5.9, 6.9, 5.4,
2.4, 4.9, 7.2, 4.2 , 6.2 , 5.8 , 3.8 , 6.2 , 5.7 , 6.8,
3.4 , 5.0 , 5.2, 5.3 , 3.0, 3.6, 3.8, 5.8, 4.9, 3.7]

3.直方图
low = min(z) # 最小值 = 2.4
high = max(z) # 最大值 = 8.7
bins = [i for i in range(math.floor(low), math.ceil(high)+1)] # 创建分组区间 [2,3,4,5,6,7,8,9]

plt.hist(z, bins, weights=np.zeros_like(z)+1./len(z)) # 绘制频率直方图

基础参数:z:输入的数据数组,bins:直方图的分组区间(如 [2,3,4,5,6,7,8,9])

解释第三个参数:

逐步分解:

len(z) 数据总个数,比如50

1./len(z) 1/50 = 0.02,每个数据点的权重

np.zeros_like(z) 创建与z形状相同的全0数组

np.zeros_like(z)+1./len(z) 每个元素都变成 0.02

plt.legend() #显示图例,在这里没有,因为上一行代码plt.hist没有设置label
plt.title(u'频率直方图') #u 前缀表示这是一个 Unicode 字符串
plt.show()

4.箱须图
plt.boxplot(z) #箱须图需要的五个关键统计量都会自动计算:最小值(排除异常值后),第一四分位数 (Q1),中位数 (Q2),第三四分位数 (Q3),最大值(排除异常值后),异常值(基于 IQR 自动识别)
plt.title(u'销售金额箱须图')
plt.show()

5.正态概率分布图
z = np.array(z)
u = z.mean() # 计算均值
var = z.var() # 计算方差
sigma = math.sqrt(var) # 计算标准差

生成正态分布曲线数据

xx = np.linspace(u-3sigma, u+3sigma, num=100)

参数解释:u-3sigma:均值减去 3 倍标准差,u+3sigma:均值加上 3 倍标准差,num=100:生成 100 个等间距点,u±3*sigma 覆盖了99.73% 的数据,能够完整展示正态分布的主要特征。

yy = [np.exp(-(x-u)2/(2*sigma2))/(sigmamath.sqrt(2math.pi)) for x in xx]

f(x) = (1 / (σ√(2π))) * e^(-(x-μ)²/(2σ²))

plt.plot(xx, yy)
plt.title(u'正态概率分布图')
plt.show()

解答疑惑:
-(1)为什么要导入数学库import math # 导入数学库

代码中使用到的 math 函数:

math.floor(low) # 向下取整,用于确定直方图的最小边界
math.ceil(high) # 向上取整,用于确定直方图的最大边界
math.sqrt(var) # 开平方根,计算标准差
math.pi # 圆周率 π,用于正态分布公式
math.sqrt(2*math.pi) # 计算 2π 的平方根
-(2)为什么要导入数学库import numpy as np
numpy 是 Python 中最重要的科学计算库,提供了高效的数组操作和数学函数。

1. 将普通列表转为numpy数组,便于数学运算

z = np.array(z)

2. 计算统计量(比手动计算方便得多)

u = z.mean() # 平均值
var = z.var() # 方差

3. 创建权重数组,用于直方图频率计算

weights=np.zeros_like(z)+1./len(z)

相当于创建了一个数组,每个元素都是 1/数据个数

这样直方图显示的是频率而不是计数

4. 生成平滑的x坐标点,用于绘制正态分布曲线

xx = np.linspace(u-3sigma, u+3sigma, num=100)

在 [均值-3标准差, 均值+3标准差] 范围内生成100个等间距点

5. 计算正态分布概率密度函数

np.exp(-(x-u)2/(2*sigma2)) # 计算e的幂次

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

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

相关文章

云原生应用架构设计原则与落地实践:从理念到便捷的方法论

云原生应用架构设计原则与落地实践:从理念到便捷的方法论pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consola…

做装饰公司网站6wordpress添加直达链接

问题描述:边缘计算设备是什么意思。 问题解答: 边缘计算(Edge Computing)是一种计算模型,其主要思想是在距离数据产生源头更近的地方进行数据处理和计算,而不是将所有数据传输到远程云服务器进行处理。边…

基于本地模型+多级校验设计的高效缓存,有效节省token数量(有点鸡肋doge) - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

UCosIII 在 Tang Nano 20K 的 SparrowRV 软核移植

一直想完整的完成从FPGA到RTOS再到基础APP完成整个流程的理解,于是,尝试在开源的小麻雀操作系统上移植最简单的UCos-III移植,但由于不懂Verilog,所以磕磕碰碰,以下是其记录: 准备工作 由于使用的是一块小小的 Ta…

学做网站培训班要多少钱家电网站源码

2019独角兽企业重金招聘Python工程师标准>>> 1.安装oracle客户端 2.配置文件 加增一个数据库的方式,是编辑 tnsnames.ora文件,在C:\Oracle\Ora81\NETWORK\ADMIN 目录下. 增加类似下面的信息 SVR236 (DESCRIPTION (ADDRESS_LIST (ADDRESS (PROTOCOL …

深入解析:Elasticsearch的集群管理介绍

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

SIP抓包工具 SIP抓包 SIP抓包

SIP抓包工具 SIP抓包 SIP抓包 CentOS 环境 sngrep 安装及使用在呼叫中心类应用开发过程中,经常需要对 SIP 信令抓包,分析排查问题。通常抓包的工具非常多样,如 Wireshark、tcpdump、ngrep 等都是可选项,但是针对…

2025声级计厂家最新权威推荐排行榜单! 数字声级计,精密声级计,防爆声级计,手持式声级计,剂量声级计公司推荐!

在噪声污染愈发受到重视的当下,从工业生产的机器轰鸣到城市交通的持续喧嚣,从建筑施工的阵阵嘈杂到日常环境中的各类声响,准确监测噪声强度成为管控污染的核心环节。而声级计作为专业测量工具,其品类丰富多样 ——…

US$78.85 KEYDIY KD ZB10-4 Universal Smart Remote Key (Start) 4 Buttons for Honda Type 5pcs/lot

KEYDIY KD ZB10-4 Universal Smart Remote Key (Start) 4 Buttons for Honda Type 5pcs/lot Manufacturer: KEYDIY Condition: New Buttons: 4 Color: Black Proximity / Smart / Keyless Go: Yes KEYDIY Remote Serie…

怎么套模板做网站建设众筹类网站

导航引言一、什么是配置中心二、常见的配置中心组件三、Nacos Config 入门四、Nacos Config 动态配置4.1 硬编码方式(默认支持动态生效)4.2 属性注入五、配置共享5.1 相同微服务不同环境间共享5.2 不同微服务配置共享六、Nacos Config 的几个概念总结引言…

深圳图派做的网站后台加什么做网站用win2008系统

作为DBA工作中都会遇到过数据库服务器CPU飙升的场景,我们该如何快速定位问题?又该如何快速找到具体是哪个SQL引发的CPU异常呢?下面我们说两个方法。聊聊MySQL中如何快速定位占用CPU过高的SQL。 技术人人都可以磨炼,但处理问题的思…

CPP中CAS std::chrono 信号量与Any类的手动达成

CPP中CAS std::chrono 信号量与Any类的手动达成2025-10-05 12:14 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display:…

网站开发公司的销售方式找客户在公司做网站

1 题目: 对于一个给定的链表,返回环的入口节点,如果没有环,返回null 拓展: 你能给出不利用额外空间的解法么? 代码: class Solution { public:ListNode *detectCycle(ListNode *head) {} …

网站怎么做301跳转网站标题作弊详解

使用这个bundle的例子:键入ready然后按tab就会生成下面的代码:$(document).ready(function() { }); 其中第二行被选中,这时在里面编写jquery代码即可. 如果要查看某个function的官方文档的话可以在键入的function之后使用快捷键ctrlh 查看. 关于bundle的下载 这里是一个textmat…

python中使用高并发分布式队列库celery的那些坑 - 指南

python中使用高并发分布式队列库celery的那些坑 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&q…

实用指南:Appium如何支持ios真机测试

实用指南:Appium如何支持ios真机测试pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…

在AI技术唾手可得的时代,挖掘新需求成为核心竞争力——某知名计算机控制AI框架需求洞察

本文基于某知名计算机控制AI框架的文档和用户反馈,深入分析其核心功能特性和使用方式,并挖掘出用户提出的关键新需求,为产品迭代提供重要参考方向。a.内容描述核心功能定位:该项目是一个开源的智能GUI代理框架,旨…

无人机桥梁3D建模、巡检、检测的航线规划 - 详解

无人机桥梁3D建模、巡检、检测的航线规划 - 详解2025-10-05 12:03 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display…

低代码——表单生成器Form Generator详解(二)——从JSON配备项到动态渲染表单渲染

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Codeforces Round 1040 (Div. 1)

VP Codeforces Round 1040 (Div. 1),从中间开始做,一道都没有写完。我发现做 CF 上的题目(特别是前面的题)一定不要想的太深,要快速切换多种思路考虑A. Double Perspective 题解 skip 完整代码点击查看代码 #incl…