博客
关于我
概率统计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存储过程中limit传参
查看>>
MySQL存储过程入门
查看>>
mysql存储过程批量建表
查看>>
MySQL存储过程的使用实现数据快速插入
查看>>
mysql存储过程详解
查看>>
Mysql存表情符号发生错误
查看>>
MySQL学习-group by和having
查看>>
MySQL学习-MySQL数据库事务
查看>>
MySQL学习-MySQL条件查询
查看>>
MySQL学习-SQL语句的分类与MySQL简单查询
查看>>
MySQL学习-子查询及limit分页
查看>>
MySQL学习-排序与分组函数
查看>>
MySQL学习-连接查询
查看>>
Mysql学习总结(10)——MySql触发器使用讲解
查看>>
Mysql学习总结(11)——MySql存储过程与函数
查看>>
Mysql学习总结(12)——21分钟Mysql入门教程
查看>>
Mysql学习总结(13)——使用JDBC处理MySQL大数据
查看>>
Mysql学习总结(14)——Mysql主从复制配置
查看>>
Mysql学习总结(15)——Mysql错误码大全
查看>>
Mysql学习总结(16)——Mysql之数据库设计规范
查看>>