本文共 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。运行程序,展示的直方图如下图所示。
转载地址:http://cepmz.baihongyu.com/