热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Matlab绘制柱状图

Matlab绘制柱状图目录:正文:注意区分:频率、频数分布直方图。一、hist()函数hist():实现的频数直方图,"hist&quot

Matlab---绘制柱状图

目录:

  1. hist()函数
  2. histc( )函数
  3. bar()函数

 

正文:

注意区分:频率、频数分布直方图。

一、             hist()函数

hist():实现的频数直方图,"hist" is short for "Histogram(直方图、柱状图)",绘制直方图,以数值中心为分界条件。

1N = hist(Y),将向量Y的元素平均分到十个等间隔的容器中,并且返回每个容器的元素个数,可以理解为下面中的hist(x,10)。如果Y是一个矩阵,hist指令逐列元素操作。Y为向量的情形见例1,为矩阵的情形见例3。

例1. Y为向量时,执行指令

>>  Y = [1, 2, 2, 5, 6, 6, 8, 11];

>> hist(Y)

Y最大为11,最小为1,故而将区间[1,11]均分为10分,分别为[1, 2], (2,3], (3,4], (4,5], (5,6], (6,7], (7,8], (8,9], (9,10], (10,11].

 

 

例2.当Y是矩阵时的情况。执行指令:

>>  Y = [1,2.5,2.1;3,3.5,6];

>> hist(Y)

注意,Y为矩阵:

    1.0000    2.5000    2.1000

    3.0000    3.5000    6.0000

Y有三列元素,逐列元素产生对应的直方图。得到

 

观察此图和矩阵Y,由于Y的元素最大为1,最小为6,故而将区间[1,6]以0.5的间隔划分为10个等长的子区间作为10个容器去容纳数据。图中有三种颜色的方条:蓝色,绿色和红色,分别对应Y中的第1,2,3列元素。如第一列元素为1和3,故而区间[1,1.5]和(2.5,3]中有蓝色方条。

 

2N = hist(Y, m)M是一个标量,表明使用m个箱子。(就像上面所说的如果不指定,默认是10个箱子)。格式[a,b]=hist(x,n) :其中x是一维向量,函数功能是将x中的最小和最大值之间的区间等分n份,横坐标是x值,纵坐标是该值的个数。返回的a是落在该区间内的个数,b是该区间的中心线位置坐标。

例1.执行指令

>> Y = [1, 1, 1.3, 2.6, 3, 3.4, 5, 5.9, 6, 6,1, 7, 7,2];

>>  hist(Y, 6)

 

 

3N = hist(Y,X)X是向量,以X中的元素为区间中心可获得一系列区间,执行命令可获得Y在这些区间中的分布情况。

y=[1.1 2.2 3.3];x=[2 3 4];

[h,xout]=hist(y,x)

返回:h=[2 1 0];

xout=[2 3 4];

第一个分组是(-inf,2.5],第二个是(2.5,3.5],第三个是(3.5,inf)

 

参考帮助文件中hist(Y,x)的说明:

n = hist(Y, x),其中x是一个向量,返回x的长度个以x的元素为中心的容器内的,Y的分布情况。例如,如果x是一个5元素的向量,返回Y在以x-轴上x的元素为中心的,5个容器内数据直方分布。注意:如果更需要指定容器边界而不是中心,可以使用histc。

[n,xout] = hist(...) 返回包含频数和容器位置的向量n和xout。可以使bar(xout,n)绘制直方图。

那么在上例中,x长度3,以x中元素为每个容器的中心,故返回值xout==x。

 

二、histc( )函数

如果需要制定数值边界而不是中心,可以使用histc。

hist()函数的作用:绘制直方图,以数值中心为分界条件;

histc()函数制定数值边界为分界条件,histc(x,edges):落入edges元素之间的x值的个数。

例如1:histc以 a=[1 2 3 4 5 6 7 8 9 0 ],  edges=1:2:7。

[n, bin]=histc(x, edges)

返回n=[2 2 2 1],

bin=[ 1  1  2  2  3  3  4  0  0  0]。

分析:

edges=1:2:7即总共有三个数值分界,分别为1<=x<3, 3<=x<5, 5<=x<7,

n(1)=2表示a中落在第一个范围的数总共有两个,1和2;

n(2)=2表示a中落在第二个范围的数总共有两个,3和4;

n(3)=2表示a中落在第三个范围的数总共有两个,5和6;

n(4)=1表示a中的值等于edges最后一个值7的个数为1。

bin的值为a中的值分别在edges的哪个范围中(1就是在edges的第一个空中),若不在edges范围中,则返回0。

 

例如2:

>> a=[1 2 3 4 5]

>> h向量:h=1:1:7

>> histc(a,h)

ans =

     1     1     1     1     1     0     0

 

例如3:

>> a为矩阵矩阵:a=[1 2 3;4 2 6;1 5 8]

a =

     1     2     3

     4     2     6

     1     5     8

>> h矢量不变:h=1:1:7

h =

     1     2     3     4     5     6     7

>> histc(a,h)

ans =

     2     0     0     分别对应于第1,2,3列中 大于等于1且小于2的矩阵元素

     0     2     0     分别对应于第1,2,3列中 大于等于2且小于3的矩阵元素

     0     0     1     分别对应于第1,2,3列中 大于等于3且小于4的矩阵元素

     1     0     0     分别对应于第1,2,3列中 大于等于4且小于5的矩阵元素

     0     1     0     分别对应于第1,2,3列中 大于等于5且小于6的矩阵元素

     0     0     1     分别对应于第1,2,3列中 大于等于6且小于7的矩阵元素

     0     0     0     分别对应于第1,2,3列中 大于等于7且小于8的矩阵元素

 

三、             bar()函数

对于bar函数的使用一般格式如下:bar(x,y) 其中x必须是严格递增的且一维向量x和一维向量y长度相同。以一维向量x的值为x坐标,对应的y为y坐标画直方图。

[n,xout] = hist(...)返回n和xout,包含有数目频率和间隔位置。可以使用bar(xout, n)来绘制直方图。

注意:[n,xout] = hist(...)格式不输出直方图,hist(...)才可以输出的直方图。

 

其他的,histfit(x,n)可直接给出直方图的拟合曲线,n是直方图的的区间数,x是你的数据。

目录:

  1. hist()函数
  2. histc( )函数
  3. bar()函数

 

正文:

注意区分:频率、频数分布直方图。

一、             hist()函数

hist():实现的频数直方图,"hist" is short for "Histogram(直方图、柱状图)",绘制直方图,以数值中心为分界条件。

1N = hist(Y),将向量Y的元素平均分到十个等间隔的容器中,并且返回每个容器的元素个数,可以理解为下面中的hist(x,10)。如果Y是一个矩阵,hist指令逐列元素操作。Y为向量的情形见例1,为矩阵的情形见例3。

例1. Y为向量时,执行指令

>>  Y = [1, 2, 2, 5, 6, 6, 8, 11];

>> hist(Y)

Y最大为11,最小为1,故而将区间[1,11]均分为10分,分别为[1, 2], (2,3], (3,4], (4,5], (5,6], (6,7], (7,8], (8,9], (9,10], (10,11].

 

 

例2.当Y是矩阵时的情况。执行指令:

>>  Y = [1,2.5,2.1;3,3.5,6];

>> hist(Y)

注意,Y为矩阵:

    1.0000    2.5000    2.1000

    3.0000    3.5000    6.0000

Y有三列元素,逐列元素产生对应的直方图。得到

 

观察此图和矩阵Y,由于Y的元素最大为1,最小为6,故而将区间[1,6]以0.5的间隔划分为10个等长的子区间作为10个容器去容纳数据。图中有三种颜色的方条:蓝色,绿色和红色,分别对应Y中的第1,2,3列元素。如第一列元素为1和3,故而区间[1,1.5]和(2.5,3]中有蓝色方条。

 

2N = hist(Y, m)M是一个标量,表明使用m个箱子。(就像上面所说的如果不指定,默认是10个箱子)。格式[a,b]=hist(x,n) :其中x是一维向量,函数功能是将x中的最小和最大值之间的区间等分n份,横坐标是x值,纵坐标是该值的个数。返回的a是落在该区间内的个数,b是该区间的中心线位置坐标。

例1.执行指令

>> Y = [1, 1, 1.3, 2.6, 3, 3.4, 5, 5.9, 6, 6,1, 7, 7,2];

>>  hist(Y, 6)

 

 

3N = hist(Y,X)X是向量,以X中的元素为区间中心可获得一系列区间,执行命令可获得Y在这些区间中的分布情况。

y=[1.1 2.2 3.3];x=[2 3 4];

[h,xout]=hist(y,x)

返回:h=[2 1 0];

xout=[2 3 4];

第一个分组是(-inf,2.5],第二个是(2.5,3.5],第三个是(3.5,inf)

 

参考帮助文件中hist(Y,x)的说明:

n = hist(Y, x),其中x是一个向量,返回x的长度个以x的元素为中心的容器内的,Y的分布情况。例如,如果x是一个5元素的向量,返回Y在以x-轴上x的元素为中心的,5个容器内数据直方分布。注意:如果更需要指定容器边界而不是中心,可以使用histc。

[n,xout] = hist(...) 返回包含频数和容器位置的向量n和xout。可以使bar(xout,n)绘制直方图。

那么在上例中,x长度3,以x中元素为每个容器的中心,故返回值xout==x。

 

二、histc( )函数

如果需要制定数值边界而不是中心,可以使用histc。

hist()函数的作用:绘制直方图,以数值中心为分界条件;

histc()函数制定数值边界为分界条件,histc(x,edges):落入edges元素之间的x值的个数。

例如1:histc以 a=[1 2 3 4 5 6 7 8 9 0 ],  edges=1:2:7。

[n, bin]=histc(x, edges)

返回n=[2 2 2 1],

bin=[ 1  1  2  2  3  3  4  0  0  0]。

分析:

edges=1:2:7即总共有三个数值分界,分别为1<=x<3, 3<=x<5, 5<=x<7,

n(1)=2表示a中落在第一个范围的数总共有两个,1和2;

n(2)=2表示a中落在第二个范围的数总共有两个,3和4;

n(3)=2表示a中落在第三个范围的数总共有两个,5和6;

n(4)=1表示a中的值等于edges最后一个值7的个数为1。

bin的值为a中的值分别在edges的哪个范围中(1就是在edges的第一个空中),若不在edges范围中,则返回0。

 

例如2:

>> a=[1 2 3 4 5]

>> h向量:h=1:1:7

>> histc(a,h)

ans =

     1     1     1     1     1     0     0

 

例如3:

>> a为矩阵矩阵:a=[1 2 3;4 2 6;1 5 8]

a =

     1     2     3

     4     2     6

     1     5     8

>> h矢量不变:h=1:1:7

h =

     1     2     3     4     5     6     7

>> histc(a,h)

ans =

     2     0     0     分别对应于第1,2,3列中 大于等于1且小于2的矩阵元素

     0     2     0     分别对应于第1,2,3列中 大于等于2且小于3的矩阵元素

     0     0     1     分别对应于第1,2,3列中 大于等于3且小于4的矩阵元素

     1     0     0     分别对应于第1,2,3列中 大于等于4且小于5的矩阵元素

     0     1     0     分别对应于第1,2,3列中 大于等于5且小于6的矩阵元素

     0     0     1     分别对应于第1,2,3列中 大于等于6且小于7的矩阵元素

     0     0     0     分别对应于第1,2,3列中 大于等于7且小于8的矩阵元素

 

三、             bar()函数

对于bar函数的使用一般格式如下:bar(x,y) 其中x必须是严格递增的且一维向量x和一维向量y长度相同。以一维向量x的值为x坐标,对应的y为y坐标画直方图。

[n,xout] = hist(...)返回n和xout,包含有数目频率和间隔位置。可以使用bar(xout, n)来绘制直方图。

注意:[n,xout] = hist(...)格式不输出直方图,hist(...)才可以输出的直方图。

 

其他的,histfit(x,n)可直接给出直方图的拟合曲线,n是直方图的的区间数,x是你的数据。


推荐阅读
  • 本文探讨了在不同场景下如何高效且安全地存储Token,包括使用定时器刷新、数据库存储等方法,并针对个人开发者与第三方服务平台的不同需求提供了具体建议。 ... [详细]
  • 本文探讨了一个Web工程项目的需求,即允许用户随时添加定时任务,并通过Quartz框架实现这些任务的自动化调度。文章将介绍如何设计任务表以存储任务信息和执行周期,以及如何通过一个定期扫描机制自动识别并加载新任务到调度系统中。 ... [详细]
  • Docker运行中实例端口映射调整方法
    本文探讨了在Docker容器运行期间调整端口映射的方法,包括前期规划与运行时需求变更两种常见场景下的解决方案。 ... [详细]
  • 春季职场跃迁指南:如何高效利用金三银四跳槽季
    随着每年的‘金三银四’跳槽高峰期的到来,许多职场人士都开始考虑是否应该寻找新的职业机会。本文将探讨如何制定有效的职业规划、撰写吸引人的简历以及掌握面试技巧,助您在这关键时期成功实现职场跃迁。 ... [详细]
  • 本文探讨了如何在Docker构建过程中使用动态环境变量,特别是针对Docker v1.9及以上版本的用户。我们将介绍如何声明和使用构建参数,以及这些参数对构建缓存的影响。 ... [详细]
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • 函子(Functor)是函数式编程中的一个重要概念,它不仅是一个特殊的容器,还提供了一种优雅的方式来处理值和函数。本文将详细介绍函子的基本概念及其在函数式编程中的应用,包括如何通过函子控制副作用、处理异常以及进行异步操作。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 深入理解Dockerfile及其作用
    Dockerfile是一种文本格式的配置文件,用于定义构建Docker镜像所需的步骤。通过使用`docker build`命令,用户可以将Dockerfile中的一系列指令转换成一个可执行的Docker镜像。 ... [详细]
  • 本文详细介绍如何在华为鲲鹏平台上构建和使用适配ARM架构的Redis Docker镜像,解决常见错误并提供优化建议。 ... [详细]
  • Flutter 核心技术与混合开发模式深入解析
    本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ... [详细]
  • 本文总结了近年来在实际项目中使用消息中间件的经验和常见问题,旨在为Java初学者和中级开发者提供实用的参考。文章详细介绍了消息中间件在分布式系统中的作用,以及如何通过消息中间件实现高可用性和可扩展性。 ... [详细]
  • 本文档旨在提供C语言的基础知识概述,涵盖常量、变量、数据类型、控制结构及函数定义等内容。特别强调了常量的不同类型及其在程序中的应用,以及如何正确声明和使用函数。 ... [详细]
  • 如何为PDF文档添加水印?简单步骤实现
    为了增强PDF文档的安全性和版权保护,添加水印是一个有效的方法。本文将介绍如何通过专业软件或在线工具轻松为PDF文档添加水印,确保您的文档在共享时仍能保持其独特性和安全性。 ... [详细]
author-avatar
psgsd57424
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有