博客
关于我
概率统计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查询语句能否让一个字段不显示出来_天天写order by,你知道Mysql底层执行原理吗?
查看>>
MySQL查询语句:揭秘专家秘籍,让你秒变数据库达人!
查看>>
mysql查询超时对PHP执行的影响
查看>>
mysql查询输出到excel文件_如何保存mysql查询输出到excel或.txt文件?
查看>>
mysql查询过程
查看>>
MySQL模拟Oracle序列sequence
查看>>
Mysql模糊查询like效率,以及更高效的写法
查看>>
MySQL死锁套路:一次诡异的批量插入死锁问题分析
查看>>
Mysql死锁问题Deadlock found when trying to get lock;try restarting transaction
查看>>
mysql每个数据库的最大连接数_MySQL数据库最大连接数
查看>>
Mysql流程控制结构,if函数、case结构、if结构、循环结构
查看>>
mysql添加外网访问权限
查看>>
mysql添加用户
查看>>
MySQL添加用户、删除用户与授权
查看>>
mysql添加用户及权限
查看>>
Mysql添加用户并授予只能查询权限
查看>>
mysql添加用户权限报1064 - You have an error in your SQL syntax问题解决
查看>>
mysql添加索引
查看>>
mysql添加表注释、字段注释、查看与修改注释
查看>>