博客
关于我
概率统计Python计算(36)样本数据直方图绘制
阅读量:650 次
发布时间:2019-03-15

本文共 2272 字,大约阅读时间需要 7 分钟。

对总体 X X X的一次具体抽样,得到一个容量为 n n n的样本观测值 ( x 1 , x 2 , ⋯   , x n ) (x_1,x_2,\cdots,x_n) (x1,x2,,xn)。记 a = m i n { x 1 , x 2 , ⋯   , x n } a=min\{x_1,x_2,\cdots,x_n\} a=min{

x1,x2,,xn} b = m a x { x 1 , x 2 , ⋯   , x n } b=max\{x_1,x_2,\cdots,x_n\} b=max{
x1,x2,,xn}
。将 [ a , b ] [a, b] [a,b]等分成 m m m个小区间 Δ k \Delta_k Δk(为方便计,其长度亦记为 Δ k \Delta_k Δk), k = 1 , 2 , ⋯   , m k=1,2,\cdots,m k=1,2,,m。记录下落入每个小区间 Δ k \Delta_k Δk内的样本观测值个数 f k f_k fk,在该区间的上方绘制高为 f k n Δ k \frac{f_k}{n\Delta_k} nΔkfk,宽为 Δ k \Delta_k Δk的矩形, k = 1 , 2 , ⋯   , m k=1,2,\cdots,m k=1,2,,m。得到的图形称为样本观测值 ( x 1 , x 2 , ⋯   , x n ) (x_1,x_2,\cdots,x_n) (x1,x2,,xn)的直方图。显然,这样绘制的直方图,其总面积为1,称为密度化的直方图。
设样本观测数据存储在数组中。Python的matplotlib包中的pyplot对象有一个专门绘制数据数组的直方图的函数hist。该函数的调用接口为
hist(x, bins, density) \text{hist(x, bins, density)} hist(x, bins, density)
参数x传递数据数组。bins传递分组个数,即小区间个数。参数density传递布尔值True或False,缺省值为False。若为True,意味着密度化直方图。
例1 下面列出84个伊特拉斯坎(Etruscan)人男子的头颅的最大宽度(mm)。

141 148 132 138 154 142 150 146 155 158 150 140 147 148
144 150 149 145 149 158 143 141 144 144 126 140 144 142
141 140 145 135 147 146 141 136 140 146 142 137 148 154
137 139 143 140 131 143 141 149 148 135 148 152 143 144
141 143 147 146 150 132 142 142 143 153 149 146 149 138
142 149 142 137 134 144 146 147 140 142 140 137 152 145

绘制这些数据的直方图。

解: 下列代码绘制本例中伊特拉斯坎人男子的头颅的最大宽度数据的直方图。

import numpy as np                                          #导入numpyfrom matplotlib import pyplot as plt                        #导入绘图对象pyplotsample=np.array([141,148,132,138,154,142,150,146,155,158,   #设置样本数据数组                150,140,147,148,144,150,149,145,149,158,                143,141,144,144,126,140,144,142,141,140,                145,135,147,146,141,136,140,146,142,137,                148,154,137,139,143,140,131,143,141,149,                148,135,148,152,143,144,141,143,147,146,                150,132,142,142,143,153,149,146,149,138,                142,149,142,137,134,144,146,147,140,142,                140,137,152,145])plt.hist(sample, bins=8, density=True)                      #分成8组绘制直方图plt.show()

注意第12行调用pyplot对象的hist函数时所传递的各个参数:传递给接收数据数组参数x的是样本观测值数组sample(在第3~11行设置),传递给确定涵盖所有样本数据的区间分组数的bins为8,传递给决定小矩形高度的参数density为True。运行程序,展示的直方图如下图所示。

在这里插入图片描述
由上图可见,沿密度化直方图的外轮廓描绘曲线,可以得到总体 X X X的密度函数的近似曲线。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

转载地址:http://cepmz.baihongyu.com/

你可能感兴趣的文章
MySQL多表左右连接查询
查看>>
mysql大批量删除(修改)The total number of locks exceeds the lock table size 错误的解决办法
查看>>
mysql如何做到存在就更新不存就插入_MySQL 索引及优化实战(二)
查看>>
mysql如何删除数据表,被关联的数据表如何删除呢
查看>>
MySQL如何实现ACID ?
查看>>
mysql如何记录数据库响应时间
查看>>
MySQL子查询
查看>>
Mysql字段、索引操作
查看>>
mysql字段的细节(查询自定义的字段[意义-行列转置];UNION ALL;case-when)
查看>>
mysql字段类型不一致导致的索引失效
查看>>
mysql字段类型介绍
查看>>
mysql字段解析逗号分割_MySQL逗号分割字段的行列转换技巧
查看>>
MySQL字符集与排序规则
查看>>
MySQL字符集乱码
查看>>
mysql存储IP地址的数据类型
查看>>
mysql存储中文 但是读取乱码_mysql存储中文乱码
查看>>
MySQL存储引擎--MyISAM与InnoDB区别
查看>>
mysql存储总结
查看>>
mysql存储登录_php调用mysql存储过程会员登录验证实例分析
查看>>
MySql存储过程中limit传参
查看>>