直方图(histogram)虽然在样式上类似条形图,但它们的作用不一样。直方图用不同的矩形表示频数,常用来观察一组数据的概率分布。在直角坐标中,用横轴表示数据分组,纵轴表示频数或频率,各组与相应的频数就形成了一个个矩形,即直方图。

画直方图用到 pyplot 中的 hist 函数,它的基本语法为:

[n, bins, patches] = hist(x, [bins], **kwargs)

输入值:

x

数组,需要绘制直方图的数值

[bins]

可选参数,数据的组数,若不指定则 hist 函数默认计算一个组数

**kwargs

不定长的关键字参数,用字典形式设置条形图的其他属性

返回值:

n

一个数组,每组直方图的频数(或概率密度)

bins

一个数组,直方图的边界数值

patches

一个对象组,每个对象代表直方图的矩形

**kwargs 中常用来设置的属性包括直方的边界线颜色 edgecolor,不透明度 alpha 等。需要注意的是,hist 函数的三个返回值一般用来继续对数据进行分析,并不是必须要写或必须要使用的。

下面举例说明该函数,例如某个饭店每天接待的顾客数有以下记录值:

141

159

166

172

177

182

188

196

203

214

143

160

167

173

177

183

189

196

203

215

144

160

168

173

178

184

189

196

205

218

149

161

168

174

178

185

189

196

206

223

150

161

168

174

178

186

190

196

207

225

152

162

170

174

179

186

190

197

208

226

153

163

171

175

179

187

191

197

209

228

153

163

171

175

179

187

192

198

210

233

154

164

172

175

180

187

194

198

210

233

155

165

172

175

180

187

194

200

211

234

156

165

172

176

181

188

195

201

211

234

158

165

172

176

182

188

195

202

213

237

在 Phthon 中编写代码,并画出对应的直方图。

import matplotlib.pyplot as plt

x = [141, 159, 166, 172, 177, 182, 188, 196, 203, 214,
     143, 160, 167, 173, 177, 183, 189, 196, 203, 215,
     144, 160, 168, 173, 178, 184, 189, 196, 205, 218,
     149, 161, 168, 174, 178, 185, 189, 196, 206, 223,
     150, 161, 168, 174, 178, 186, 190, 196, 207, 225,
     152, 162, 170, 174, 179, 186, 190, 197, 208, 226,
     153, 163, 171, 175, 179, 187, 191, 197, 209, 228,
     153, 163, 171, 175, 179, 187, 192, 198, 210, 233,
     154, 164, 172, 175, 180, 187, 194, 198, 210, 233,
     155, 165, 172, 175, 180, 187, 194, 200, 211, 234,
     156, 165, 172, 176, 181, 188, 195, 201, 211, 234,
     158, 165, 172, 176, 182, 188, 195, 202, 213, 237]

plt.hist(x, edgecolor='k', alpha=0.35) # 设置直方边线颜色为黑色,不透明度为 0.35
plt.show()

显示图形:

Hicpro指定python3.8 hist python_直方图