لَآ إِلَـٰهَ إِلَّا هُوَ
LA ILAHA ILLA HU
Allah, Your Lord There Is No Deity Except Him.

# Python Data Science Matplotlib Histograms

A histogram is a graph showing frequency distributions. It is a graph which shows the number of observations within each given interval.

Example 1: Say you ask for the height of 500 people. For simplicity we use NumPy to randomly generate an array with 500 values, where the values will concentrate around 200, and the standard deviation is 20. A Normal Data Distribution by NumPy for the same would be as below

Code

import numpy as np
x = np.random.normal(200, 20, 500)
print(x)

output will be.

[195.36333694 192.06460493 218.93509457 195.24248188 234.66413888

166.74307532 210.40697405 192.56005625 210.55142102 198.83900029

191.97539521 196.01586341 200.76734128 212.52039468 174.44675673

180.90527027 153.81702515 219.56135173 212.68870626 225.92293157

208.58466086 194.28241739 190.65118445 203.61801532 209.11576321

225.92169072 206.48330702 174.39563859 204.34055471 218.5191373

189.44132995 247.36600584 211.22822072 183.84328057 188.2334376

185.75479718 204.77807488 196.3768934 233.22471424 197.27819998

193.13740968 197.63352381 161.07808481 203.00963914 176.29631661

179.96834999 181.35536284 225.22458838 184.76936163 225.18584262

166.99884947 210.43240855 204.88361048 178.88200294 187.4227057

199.88540048 192.85355153 162.35992718 188.14772211 201.68907642

223.52214212 191.99727571 202.35457702 188.57703486 219.99525613

182.10572405 221.71640978 207.8013061 205.17327442 197.07047242

192.6506295 215.33982181 190.26649268 230.48862539 207.52473986

211.85026947 213.14747757 172.05945107 200.04811729 206.12290732

220.27703016 193.79485011 204.65265608 227.46063922 214.65841827

219.8280764 216.19849487 199.88581886 174.67888692 219.53496357

182.80292395 199.29436187 182.49034489 196.45664876 226.31222833

224.64141224 217.16782924 206.9297814 187.9502181 184.16428227

199.55479694 181.45708225 203.44445732 173.56684285 194.73565197

182.08618319 159.17264196 219.17680412 207.74895885 177.51830868

167.36812446 232.71630018 198.94117831 194.55559781 219.9527305

188.2047885 220.13356911 205.57753774 224.97596912 204.27549725

226.54088355 220.03986751 209.12991298 193.28625794 195.12288216

161.18452988 181.76059946 171.80355112 177.15226789 182.99650714

218.65869153 202.17181863 180.15185001 217.8130761 223.37278845

167.17197676 200.83825569 212.64130445 201.22620911 179.65955848

231.60335311 231.62496372 185.74067282 203.43785436 201.49138313

204.35165361 197.9811102 200.43635228 178.04099814 188.43067772

192.84815743 170.10356247 200.1792692 209.60089646 183.20954713

221.41775735 196.54471293 201.18773076 226.17212868 201.85421682

226.46057346 181.87117198 175.43403886 209.84965406 195.90385023

215.37039043 182.38714078 221.44471725 166.22923627 175.98797322

178.64314409 201.0449044 202.91080377 207.40519316 252.68797533

174.61856807 170.77506812 217.03605868 193.13526611 166.26358532

190.13682704 200.79534915 165.66339789 217.90841882 225.36975642

222.45259502 201.07610584 177.73008085 222.75207893 222.18360875

231.50565138 198.94214301 213.42982242 167.89435235 170.68593088

158.19619818 173.60421078 157.26148128 181.06366458 204.41541034

197.8136497 169.31513633 234.8853614 206.82638553 210.99921825

221.48861329 204.13073283 208.27869572 201.32000559 189.71129667

191.19372563 143.25688724 203.38253169 191.08007489 199.92232023

211.8384695 202.62412642 201.05613373 224.30206751 213.62042235

219.60930627 170.12307196 238.67769243 207.03991678 176.55347511

190.28882751 205.47045517 213.88031133 223.03674095 217.69748819

222.63391925 213.42666114 225.70051173 229.12129836 209.46335361

202.32238978 201.53795974 187.29455279 182.81579434 181.00730496

207.8268121 189.51358775 180.18701511 197.86827999 205.41349265

188.18187242 194.87862921 208.29845944 203.21245917 178.33349474

223.63715935 201.39800409 221.50216819 235.27971803 174.21789166

204.1070133 200.81644489 207.87995505 205.73600773 184.030866

188.46254315 170.83650969 238.46271228 201.86010815 188.40186723

197.86720026 208.15616004 239.07311987 232.32215789 178.22587543

192.38949 180.70030588 184.16878883 206.2938351 233.65932158

232.41800745 192.32119649 202.17390133 163.06832224 218.48022566

209.54980892 205.40638554 223.92154275 184.45694064 202.00417447

160.49696128 241.92914004 184.61739257 205.91683027 171.92292526

190.0605478 209.69798899 185.28345155 188.44177591 218.56122736

220.11184376 154.86826218 193.44177009 216.10107172 211.16476197

206.18237021 181.84254946 145.38357021 194.73201781 182.13090587

217.89572334 208.50983206 204.76684887 172.66917469 214.96984041

195.14846964 214.27567531 187.40663759 209.60892202 214.39923467

210.50473887 220.28643214 193.06923532 177.40686966 141.27156467

160.63656038 192.6694537 182.52872469 240.56981992 198.27920068

201.8744315 185.70593784 183.68867038 200.88810269 190.78387773

205.3011619 201.91069007 189.58688499 190.88758037 189.49100731

204.16449307 182.58766516 178.74198042 191.43423478 235.91065252

211.27962782 200.50071416 191.00757341 210.85322405 203.75393279

204.60095848 205.56265679 174.87790969 184.96423371 200.41727973

172.13156736 209.13949709 198.38019369 171.84042879 161.62441819

216.04218623 213.06571576 194.56759687 189.35477189 193.90761867

204.30375127 215.53253825 218.49891903 178.60974867 212.83953441

195.9253538 197.78332563 200.85387868 214.72173327 217.87563626

194.6629066 215.92259984 172.49538669 204.75844164 176.34147657

200.07988204 180.640734 207.22541623 219.43971639 198.06229583

213.41387101 186.08064781 219.89241243 204.79421953 185.32832757

210.94637639 160.29422175 208.36319911 180.37095782 186.55408942

233.82527422 194.23478718 199.47422712 211.62809086 139.11379776

244.99322769 195.53008332 181.02924774 226.45734929 187.37265524

178.15615405 210.30232452 203.32341776 196.68181384 181.90427673

167.16579275 213.89407641 157.77653731 219.65809284 222.90507485

188.97890169 211.19261123 195.88970739 203.05807289 213.69609999

185.32321449 150.36244301 204.16265456 208.63164506 201.68417265

187.67268452 205.01578644 210.57348595 189.10261937 166.44047946

190.53684622 173.55985938 209.27485549 189.84116645 217.38315582

209.34282111 197.85069049 200.50165725 172.41284362 220.67753905

166.67550193 206.36777504 171.39835889 187.84622853 204.76374258

230.27547922 212.09386118 221.8447369 167.77733768 210.78185061

167.86055163 187.56715054 230.3492913 182.79732976 206.54524613

196.32301393 171.38664311 185.62405555 198.57999365 204.65383958

171.65151634 183.94323892 205.69072279 180.48619703 206.08705353

167.71737247 171.07731175 148.36017927 171.05381141 198.40091528

211.24051935 192.18876963 184.85924203 163.94380993 200.91168103

220.39829333 194.54255413 213.76845251 199.48613248 172.89349755

173.7570742 202.38295923 223.12509124 194.60600231 212.64478182

207.34592652 206.48460655 194.77276339 210.26637351 191.82114395

179.95273952 202.69885156 196.51698092 194.53466175 213.80327263

188.44926481 186.77014874 179.22314327 195.35250765 182.73953743

234.11567115 173.29825488 179.30829532 200.989412 172.85687698]

Now in order to generate a histogram for the above data.

Code

import matplotlib.pyplot as plt
import numpy as np

x = np.random.normal(200, 20, 500)

plt.hist(x)
plt.show()

the output will be.

Observations: You can read from the histogram that there are approximately:

```
2 people from 140 to 150cm
10 people from 150 to 160cm
40 people from 160 to 170cm
68 people from 170 to 180cm
118 people from 180 to 190cm
102 people from 200 to 210cm
94 people from 210 to 220cm
38 people from 220 to 230cm
15 people from 230 to 240cm
11 people from 240 to 250cm
2 people from 250 to 260cm
```