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

这篇具有很好参考价值的文章主要介绍了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)

matlab画直方图,# Matlab基础内容,matlab,开发语言

2、指定直方图条柱数

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

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

matlab画直方图,# Matlab基础内容,matlab,开发语言

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

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

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

matlab画直方图,# Matlab基础内容,matlab,开发语言

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

Nbins = morebins(h)

matlab画直方图,# Matlab基础内容,matlab,开发语言

matlab画直方图,# Matlab基础内容,matlab,开发语言

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

h.NumBins = 31;

matlab画直方图,# Matlab基础内容,matlab,开发语言

4、指定直方图的条柱边

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

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

matlab画直方图,# Matlab基础内容,matlab,开发语言

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

h.Normalization = 'countdensity';

matlab画直方图,# Matlab基础内容,matlab,开发语言

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)

matlab画直方图,# Matlab基础内容,matlab,开发语言

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

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

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

matlab画直方图,# Matlab基础内容,matlab,开发语言

计算条形高度的总和。通过此归一化,每个条形的高度等于在该条柱间隔内选择观测值的概率,并且所有条形的高度总和为 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")

matlab画直方图,# Matlab基础内容,matlab,开发语言

8、绘制多个直方图

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

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

matlab画直方图,# Matlab基础内容,matlab,开发语言

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

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

matlab画直方图,# Matlab基础内容,matlab,开发语言

9、调整直方图属性

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

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

matlab画直方图,# Matlab基础内容,matlab,开发语言

准确指定要使用的箱数。

h.NumBins = 15;

matlab画直方图,# Matlab基础内容,matlab,开发语言

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

h.BinEdges = [-3:3];

matlab画直方图,# Matlab基础内容,matlab,开发语言

更改直方图条的颜色。

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

matlab画直方图,# Matlab基础内容,matlab,开发语言

10、确定基础概率分布

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

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

matlab画直方图,# Matlab基础内容,matlab,开发语言

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

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

matlab画直方图,# Matlab基础内容,matlab,开发语言

叠加均值为 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)

matlab画直方图,# Matlab基础内容,matlab,开发语言

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

使用该功能保存图窗。

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

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

h = openfig('histogram.fig');

matlab画直方图,# Matlab基础内容,matlab,开发语言

使用该函数从图窗手柄中找到正确的对象手柄。这允许您继续操作用于生成图窗的原始直方图对象。文章来源地址https://www.toymoban.com/news/detail-850894.html

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

到了这里,关于Matlab之统计数据分布并绘制直方图函数histogram的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python中利用seaborn绘制概率分布直方图以及密度图

    当我们想要弄清楚变量的统计特性时,往往想知道它是服从什么分布的,这时候就需要绘制概率分布直方图 在python中我们可以使用 seaborn 库来进行绘制: Seaborn是一个基于matplotlib的Python数据可视化库。它为绘制有吸引力和信息丰富的统计图形提供了高级界面。 首先需要导入

    2024年02月16日
    浏览(58)
  • Matlab论文插图绘制模板第43期—直方图(histogram)

    在之前的文章中,分享过很多 柱状图的Matlab绘制模板 : 这一次,来分享一种比较特殊的柱状图: 统计直方图 。 先来看一下 成品效果 : 特别提示 :Matlab论文插图绘制模板系列, 旨在降低大家使用Matlab进行科研绘图的门槛 ,只需按照模板格式添加相应内容,即可得到满足

    2024年02月15日
    浏览(44)
  • Qt之基于QCustomPlot绘制直方图(Histogram),叠加正态分布曲线

    高斯分布(Gaussian distribution),又名正态分布(Normal distribution),也称\\\"常态分布\\\",也就是说,在正常的状态下,一般的事物,都会符合这样的分布规律。 比如人的身高为一个随机变量,特别高的人比较少,特别矮的也很少,大部分都集中在中等身高。 人的智商也是如此,社会精

    2024年02月06日
    浏览(56)
  • 【图论】计算图的n-hop邻居个数,并绘制频率分布直方图

    在图论中,n-hop邻居(或称为K-hop邻居)是指从某个顶点出发,通过最短路径(即最少的边数)可以到达的所有顶点的集合,其中n(或K)是这个最短路径的长度。换句话说,n-hop邻居就是在图中,从一个顶点出发,经过n步可以到达的所有顶点。 举个日常生活中的例子,我们的

    2024年04月28日
    浏览(45)
  • 百分位数、数据分布、直方图、正态数据分布

    目录 1、百分位数 2、数据分布 3、正态数据分布 统计学中使用百分位数(Percentiles)提供一个数字,该数字描述了给定百分比值小于的值。 例如:假设我们有一个数组,包含一时刻一条街上人的年龄 什么是 90 百分位数?答案是 61,这意味着 90% 的人是 61 岁或以下。 NumPy

    2024年02月06日
    浏览(39)
  • Python获取excel的数据并绘制箱型图和直方图

    根据箱型图、直方图的代码和数据的条件查询方法,画出航空公司男性和女性用户的年龄分布 箱型图 和 直方图 。 目录  图形简介 1. 箱线图 2.直方图 引入模块 获取数据 处理数据 根据性别来分开查询数据 画图 箱型图  直方图 男性直方图 1. 箱线图 箱线图(Box-plot)又称为

    2024年02月05日
    浏览(48)
  • Python数据分布类型图(箱型图、直方图)

    本文示例 :根据箱型图、直方图的代码和数据的 条件查询 方法,画出航空公司男性和女性用户的年龄分布 箱型图 和 直方图 。 目录 图形概念 1.箱型图 2.直方图 步骤: 1、导入相关库 2、对数据进行处理  3、绘制图形                 箱型图                

    2024年02月11日
    浏览(46)
  • 【OpenCV • c++】直方图计算 | 绘制 H-S 直方图 | 绘制一维直方图 | 绘制 RGB 三色直方图

      直方图广泛应用于很多计算机视觉处理当中。通过标记帧与帧之间显著的边缘和颜色的变化,可以检测视频中的场景变化。在每个兴趣点设置一个有相似特征的直方图所构成的“标签”,可以用来标记各种不同的事情,比如图像的色彩分布,物体边缘梯度模板等等。是计

    2024年02月09日
    浏览(54)
  • WPS数据清洗+R语言读取文件画频数分布直方图

    R语言是一门好语言,但很多人在读取文件中数据时会遇到问题。比如我遇到的问题就是从文件中读取数据后,数据无法用于画图。 检索了N篇博文(抱歉我实在无法一一列举30+篇博文)后,终于看到曙光,事实告诉我学任何一门语言都需要至少投资一本教材(譬如《R语言编程

    2024年02月12日
    浏览(38)
  • Python数据可视化(三)绘制统计图形大全

    以 Python 代码的形式讲解柱状图的绘制原理,这里重点讲解 bar()函数的使用方法。 代码: 运行结果: 为了展示图表里的中文字体,我们选择字体“SimHei”, 通 过 “mpl.rcParams[\\\"font.sans-serif\\\"] =[\\\"SimHei\\\"]”完成字体配置任务。不使用默认的“Unicode minus”模式来处理坐标轴轴线的刻

    2024年02月02日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包