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是你的数据。

Matlab---绘制柱状图的更多相关文章

  1. 使用 highchart 绘制柱状图的通用方法与接口

    本文给出使用 highchart 绘制柱状图的通用方法与接口, 只要指定相应的数据结构和配置, 就可以直接拿来使用. 一.  数据结构与基本接口   一般绘制图形, 会涉及到较复杂的数据结构, 比如使 ...

  2. 用matlab绘制幂函数

    用matlab绘制幂函数 下周轮到我做论文汇报了,刚好前两天看了网格水印的文章,就决定汇报前两天看到的那篇论文了.在准备ppt的过程中,绘制了一些幂函数,感觉matlab真的是很强大啊,可以绘制各种曲 ...

  3. Android之使用AchartEngineActivity引擎绘制柱状图、曲线图

    1.简介 AChartEngine(简称ACE)是Google的一个开源图表库(for Android).它功能强大,支持散点图.折线 .关于里面类的具体使用,请下载响应的文档说明(主页上有). 2. ...

  4. 【MATLAB】用MATLAB绘制奥运五环

    [MATLAB]用MATLAB绘制奥运五环 今天用MATLAB绘制了一个奥运五环,好吧,实际上是帮人做作业,嘿嘿. 贴代码: clear; clc; N = 1000; angle = linspac ...

  5. 【带着canvas去流浪】(1)绘制柱状图

    目录 一. 任务说明 二. 重点提示 三. 示例代码 四. 思考题 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址:<大史住在大前端& ...

  6. python 绘制柱状图

    python 绘制柱状图 import matplotlib.pyplot as plt import numpy as np # 创建一个点数为 8 x 6 的窗口, 并设置分辨率为 80像素/每英 ...

  7. [ZZ] 用matlab绘制箭头

    用matlab绘制箭头 http://npfeng900.blog.163.com/blog/static/14456108201221922944998/ 用matlab绘制箭头1 用matlab绘 ...

  8. MATLAB 画柱状图(/直方图)修改横坐标名称并使其横着显示

    使用MATLAB 画柱状图 ,即bar (x,y),其横坐标是默认 1.2.3.4.……的 % --v1 y1=[asum1,asum2,asum3,asum4,asum5,asum6,asum7,a ...

  9. Matlab绘制三维曲面(以二维高斯函数为例)

    原文地址为:Matlab绘制三维曲面(以二维高斯函数为例) 寒假学习了一下Python下的NumPy和pymatlab,感觉不是很容易上手.来学校之后,决定继续看完数字图像处理一书.还是想按照上学期的 ...

  10. 用matlab绘制中国地图

    reference:https://jingyan.baidu.com/article/870c6fc36fdacfb03ee4be58.html shp: http://muchong.com/ht ...

随机推荐

  1. cvpr2015papers

    @http://www-cs-faculty.stanford.edu/people/karpathy/cvpr2015papers/ CVPR 2015 papers (in nicer forma ...

  2. 解决element-ui按需引入不了Scrollbar的问题

    一.报错原因 在我想按需引入element-ui时,突然报错: 这个报错来的有点措不及防.明明在页面当中能够使用,为仕么在单独引入时却不能引用了,真是百思不得其解. 经过在百度上的查找才知道,原来Sc ...

  3. 磁盘分区知识与linux系统分区实践

    一.磁盘存储逻辑结构图 回忆: (1)什么是分区? 磁盘分区就相当于给磁盘打隔断. (2)磁盘在linux里的命名 IDE    /dev/hda  hdb SCSI   sda     sdb 分区 ...

  4. 剑指offer24:二叉树中和为输入整数值的所有路径。(注意: 在返回值的list中,数组长度大的数组靠前)

    1 题目描述 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.(注意: 在返回值的list中,数组长 ...

  5. Kindergarten(网络流解法)

    题意:http://acm.hdu.edu.cn/showproblem.php?pid=2458 问你二分图的最大团是多大. #define IOS ios_base::sync_with_stdi ...

  6. python+socket实现网络信息交互及文件传输

    Socket 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. Socket又称"套接字",应用程序通常通过"套接字" ...

  7. Django学习(2.2.1版本)

    项目技术重难点分析: 模型层:模型是您的数据唯一而且准确的信息来源.它包含您正在储存的数据的重要字段和行为.一般来说,每一个模型都映射一个数据库表. 每各模型都是一个python的类,这些类继承  d ...

  8. linux内核exec过程

    简介 本文分析linux内核exec系统调用执行过程中可执行文件的加载过程和栈的设置,内核代码版本为2.6.32 分析 \arch\ia64\kernel\process.c中有sys_exec函数的 ...

  9. javascript——onsubmit和onreset事件 和开发中常用的方式

    <head> <meta charset="UTF-8"> <title></title> <script> funct ...

  10. springboot+mybatis调用oracle存储过程

    1 存储过程参数为VARCHAR 代码逻辑:controller层定义实体类对象entity,并entity.set给存储过程的输入参数赋值,把赋值后的实体类通过service层传到dao层,然后通过 ...