Matlab之统计数据分布并绘制直方图函数histogram

一、功能

直方图是一种将数据分组到条柱中的条形图。该函数可以统计数据在划分区间内的数量分布,同时以直方图的形式展示统计结果。

二、语法

1、histogram(X)

创建直方图X的图。该函数使用 一种自动分箱算法,返回具有统一宽度的分箱, 选择以涵盖元素范围并揭示 分布的基础形状。 将条柱显示为矩形条,以便每个矩形的高度 表示箱中的元素数。

2、histogram(X,nbins)

指定条柱的数量。

3、histogram(X,edges)

将条柱边分类到X向量。

4、histogram('BinEdges',edges,'BinCounts',counts)

绘制指定的条柱计数,并且不执行任何数据条箱。

5、histogram(C,Categories)

仅绘制C中的类别子集。

6、histogram('Categories',Categories,'BinCounts',counts)

手动指定类别和关联的 bin 计数。 绘制指定的条柱计数并执行histogram不执行任何数据合并。

7、输入数据

X— 要在 bin 向量之间分配的数据

C— 分类数据

nbins— 条柱数,正整数

edges— 条柱边,向量

Categories— 字符向量的直方图 元胞数组中包含的类别

counts— Bin 计数

三、示例

1、向量直方图

生成 10,000 个随机数并创建直方图。该函数会自动选择适当数量的条柱,以覆盖值范围并显示基础分布的形状。

x = randn(10000,1);
h = histogram(x)

2、指定直方图条柱数

绘制 1,000 个随机数的直方图,这些随机数被分类到 25 个等距的条柱中。

x = randn(1000,1);
nbins = 25;
h = histogram(x,nbins)

3、更改直方图条柱的数量

生成 1,000 个随机数并创建直方图。

X = randn(1000,1);
h = histogram(X)

使用该功能粗略调整箱数。

Nbins = morebins(h)

通过显式设置条柱数量,在细粒度级别调整条柱。

h.NumBins = 31;

4、指定直方图的条柱边

生成 1,000 个随机数并创建直方图。将条柱边指定为在直方图边上具有宽条柱的向量,以捕获不满足条件的异常值∣x∣<2.第一个向量元素是第一个条柱的左边缘,最后一个向量元素是最后一个条柱的右边缘。

x = randn(1000,1);
edges = [-10 -2:0.25:2 10];
h = histogram(x,edges);

指定属性以展平包含异常值的条柱。现在,每个条柱的面积(而不是高度)表示该区间内的观测频率。

h.Normalization = 'countdensity';

5、绘制分类直方图

创建表示投票的分类向量。向量中的类别为 、 或 。'yes''no''undecided'

A = [0 0 1 1 1 0 0 0 0 NaN NaN 1 0 0 0 1 0 1 0 1 0 0 0 1 1 1 1];
C = categorical(A,[1 0 NaN],{'yes','no','undecided'})

绘制投票的分类直方图,使用相对柱形宽度 0.5

h = histogram(C,'BarWidth',0.5)

6、具有指定归一化的直方图

生成 1,000 个随机数并使用归一化创建直方图。

x = randn(1000,1);
h = histogram(x,'Normalization','probability')

计算条形高度的总和。通过此归一化,每个条形的高度等于在该条柱间隔内选择观测值的概率,并且所有条形的高度总和为 1。

S = sum(h.Values)

7、使用百分比的直方图

生成 100,000 个正态分布的随机数。使用标准差 15 和平均值 100。

x = 100 + 15*randn(1e5,1);

绘制随机数的直方图。缩放 y 轴并将其标记为百分比。

edges = 55:15:145;
histogram(x,edges,Normalization="percentage")
ytickformat("percentage")

8、绘制多个直方图

生成两个随机数向量,并在同一图中为每个向量绘制直方图。

x = randn(2000,1);
y = 1 + randn(5000,1);
h1 = histogram(x);
hold on
h2 = histogram(y);

由于直方图的样本大小和条柱宽度不同,因此很难进行比较。对直方图进行归一化,使所有条形高度相加为 1,并使用统一的条柱宽度。

h1.Normalization = 'probability';
h1.BinWidth = 0.25;
h2.Normalization = 'probability';
h2.BinWidth = 0.25;

9、调整直方图属性

生成 1,000 个随机数并创建直方图。返回直方图对象以调整直方图的属性,而无需重新创建整个绘图。

x = randn(1000,1);
h = histogram(x)

准确指定要使用的箱数。

h.NumBins = 15;

使用矢量指定条柱的边缘。向量中的第一个值是第一个条柱的左边缘。最后一个值是最后一个条柱的右边缘。

h.BinEdges = [-3:3];

更改直方图条的颜色。

h.FaceColor = [0 0.5 0.5];
h.EdgeColor = 'r';

10、确定基础概率分布

生成 5,000 个正态分布的随机数,平均值为 5,标准差为 2。绘制直方图以生成概率密度函数的估计值。

x = 2*randn(5000,1) + 5;
histogram(x,'Normalization','pdf')

在此示例中,正态分布数据的基础分布是已知的。但是,您可以使用直方图,通过将数据与已知概率密度函数进行比较,来确定数据的基础概率分布pdf。

均值为正态分布的概率密度函数μ标准差σ和方差σ2

叠加均值为 5 且标准差为 2 的正态分布的概率密度函数图。

hold on
y = -5:0.1:15;
mu = 5;
sigma = 2;
f = exp(-(y-mu).^2./(2*sigma^2))./(sigma*sqrt(2*pi));
plot(y,f,'LineWidth',1.5)

11、保存和加载直方图对象

使用该功能保存图窗。

histogram(randn(10));
savefig('histogram.fig');
close gcf

用于将直方图加载回 MATLAB®。 还返回图的句柄。

h = openfig('histogram.fig');

使用该函数从图窗手柄中找到正确的对象手柄。这允许您继续操作用于生成图窗的原始直方图对象。

y = findobj(h,'type','histogram')

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数组解构、对象解构与forEach方法遍历数组

解构赋值 1. 数组解构 1.1 基本语法 1.2 变量多 单元值少的情况 1.3 变量少 单元值多的情况 1.4 防止undefined传值情况 使用默认值 1.5 按需导入 忽略某些值 1.6 支持多维数组的解构 2. 对象解构 2.1 基本语法 2.2 给新的变量名赋值 2.3 数组对象解构 2.4 多级对象解构 cons…

网络安全威胁——跨站脚本攻击

跨站脚本攻击 1. 定义2. 跨站脚本攻击如何工作3. 跨站脚本攻击类型4. 如何防止跨站脚本攻击 1. 定义 跨站脚本攻击&#xff08;Cross-site Scripting&#xff0c;通常称为XSS&#xff09;&#xff0c;是一种典型的Web程序漏洞利用攻击&#xff0c;在线论坛、博客、留言板等共享…

vscode插件离线下载

离线下载插件地址&#xff1a;https://marketplace.visualstudio.com/VSCode

win11 关闭快速启动,解决重启后部分应用没有关闭的问题

鼠标右击win11开始菜单选择windows终端&#xff08;管理员&#xff09;打开输入&#xff1a;powercfg /h off按下回车即可

AOC computer monitor

【窗口增亮】关闭就没掉了

近期Google paly再次卡审?需要开发者提供更多关于应用的信息以通过谷歌审查?

谷歌政策更新得越来越频繁&#xff0c;也越来越严格&#xff0c;加大了对应用的审核力度。 最近&#xff0c;不少开发者表示&#xff0c;谷歌卡审又出新花样了。与之前收到暂停审核电话验证邮件&#xff08;需要在48-72小时内&#xff0c;拨打你开发者账号的号码&#xff0c;应…

8、Broker进一步了解

1、Broker消息分发服务以及构建ConsumeQueue和IndexFile与消息清除 前面分析如何进行刷盘&#xff0c;本章分析Broker的消息分发以及构建ConsumerQueue和IndexFile&#xff0c;两者构建是为了能够提高效率&#xff0c;减少消息查找时间以及减少网络带宽与存储空间。 ConsumeQ…

逆向爬虫进阶实战:突破反爬虫机制,实现数据抓取

文章目录 一、引言二、逆向爬虫进阶技巧三、逆向爬虫进阶实战代码片段四、总结与展望好书推荐内容简介作者简介前言节选 一、引言 随着网络技术的发展&#xff0c;网站为了保护自己的数据和资源&#xff0c;纷纷采用了各种反爬虫机制。然而&#xff0c;逆向爬虫技术的出现&…

农业装备行业分析:中国市场规模增长到4500多亿元

农业装备是指用于农业生产过程的先进农业机械、设备和设施。主要包括&#xff1a;农业田间作业机械、设施农业装备、农产品加工装备、农业生物质利用装备、农田设施与装备、农业信息化装备等。 农业装备服务于大农业&#xff0c;包括种植业、养殖业、加工业、服务业等&#xff…

详解python 面向对象三大特征

文章目录 一、面向对象三大特征介绍1、封装&#xff08;隐藏&#xff09;2、继承3、多态 二、继承1、语法格式2、类成员的继承和重写3、super()获得父类定义4、设计模式\_工厂模式实现 5、设计模式\_单例模式实现关于Python技术储备一、Python所有方向的学习路线二、Python基础…

Jupyter Notebook工具

Jupyter Notebook 是一个交互式的笔记本环境&#xff0c;允许用户以网页形式编写和分享代码、文本、图像以及其它多媒体内容。它支持超过 40 种编程语言&#xff0c;最常用的是 Python。 以下是 Jupyter Notebook 工具的一些特点和用法&#xff1a; 1. 特点&#xff1a; 交互式…

HTML程序大全(2):通用注册模版

一、正常情况效果 二、某项没有填写的效果 三、没有勾选同意项的效果 四、代码 <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>注册</title><style>body {font-family: Arial, sans-serif;background-color…

STM32基础教程 p16 窗口看门狗(WWDG)

1 窗口看门狗工作原理 1.1 简介 WWDG简介 窗口看门狗通常被用来监测&#xff0c;由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运 行序列而产生的软件故障。除非递减计数器的值在T6位变成0前被刷新&#xff0c;看门狗电路在达到预置 的时间周期时&#xff0c;会产…

Win系统缺少xinput1_3.dll有什么处理办法?看看这几个快速解决方法

一、xinput1_3.dll文件介绍&#xff1a; 文件类型&#xff1a;xinput1_3.dll是一种动态链接库&#xff08;DLL&#xff09;文件&#xff0c;用于提供系统功能。 文件大小&#xff1a;xinput1_3.dll文件大小通常在几KB到几十KB之间&#xff0c;具体取决于操作系统版本和编译时…

全息图着色器插件:Hologram Shaders Pro for URP, HDRP Built-in

8个新的Unity全息图着色器,具有故障效果,扫描线,网格线,和更多其他效果!与所有渲染管线兼容。 软件包添加了一系列的全息图着色器到Unity。从基本的全息图与菲涅耳亮点,先进的全息图与两种故障效应,扫描线,文体点阵和网格线全息图! 特色全息效果 Basic-支持菲涅耳发光照…

AWS CodeWhisperer:基于机器学习的代码建议工具

#AWS CodeWhisperer&#xff1a;基于机器学习的代码建议工具 AWS CodeWhisper概述 Amazon CodeWhisperer 是一种基于机器学习&#xff08;ML&#xff09;的服务&#xff0c;它可以根据Amazon CodeWhisperer 是一种基于机器学习&#xff08;ML&#xff09;的服务&#xff0c;它…

单片机开发常用的软件构架

对于单片机程序来说&#xff0c;大家都不陌生&#xff0c;但是真正使用架构&#xff0c;考虑架构的恐怕并不多&#xff0c;随着程序开发的不断增多&#xff0c;架构是非常必要的。 一、时间片轮询法 介于前后台顺序执行法和操作系统之间的一种程序架构设计方案。该设计方案需能…

软件测试外包干了2个月,技术进步2年。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;18年通过校招进入北京某软件公司&#xff0c;干了接近2年的功能测试&#xff0c;今年国庆&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试&…

学习UnitTest框架,轻松打造无懈可击的代码!

一、什么是UnitTest&#xff1f; 1、介绍 unittest是Python自带的一个单元测试框架&#xff0c;它可以做单元测试&#xff0c;也能用于编写和运行重复的测试工作。 它给自动化测试用例开发和执行提供了丰富的断言方法&#xff0c;判断测试用例是否通过&#xff0c;并最终生成…

C++基础 -46- 类的静态函数成员

类的静态函数成员可以不创建类直接访问 #include "iostream"using namespace std;class base {public:static void show(){cout << "hello world" << endl;} };int main() {base::show(); }类的静态函数成员不能访问非静态成员 class base…