Computer 4 dummy

Informatica facile a portata di tutti

SciPy – Esempi grafici di Distribuzione normale

Nel capitolo precedente abbiamo visto come che cos’è e come calcolare velocemente la distribuzione normale con alcuni esempi pratici dal punto di vista numerico.
In questo capitolo invece andremo più nel dettaglio rappresentando graficamente i dati per capire ancora meglio come utilizzare queste funzioni di SciPy.

Per prima cosa andremo a creare un array contenente 10000 campioni e andremo a rappresentarlo in un grafico ad istogramma.
Per un ripasso su come utilizzare i grafici ad istogramma in python potete andare a questo capitolo della guida: Matplotlib – Grafico a istogramma

from scipy.stats import norm
import numpy as np
import matplotlib.pyplot as plt

r = np.random.randn(10000)
plt.hist(r, bins=100)

Out[34]: 
(array([  2.,   0.,   0.,   0.,   0.,   1.,   1.,   2.,   0.,   4.,   5.,
          0.,   2.,   3.,   2.,   8.,   9.,   8.,  11.,  15.,  19.,  22.,
         26.,  31.,  48.,  53.,  53.,  64.,  74.,  53.,  98., 109., 104.,
        136., 139., 154., 176., 160., 143., 190., 215., 225., 250., 255.,
        270., 290., 293., 303., 294., 296., 299., 305., 328., 303., 293.,
        276., 272., 282., 282., 247., 251., 221., 194., 184., 208., 185.,
        143., 139., 111., 107.,  86.,  84.,  86.,  72.,  54.,  73.,  44.,
         38.,  37.,  33.,  24.,  23.,  21.,  20.,   8.,  14.,  10.,   6.,
          6.,   5.,   1.,   0.,   3.,   2.,   0.,   3.,   0.,   0.,   0.,
          1.]),
 array([-3.93843187, -3.86150767, -3.78458348, -3.70765928, -3.63073508,
        -3.55381089, -3.47688669, -3.39996249, -3.3230383 , -3.2461141 ,
        -3.1691899 , -3.09226571, -3.01534151, -2.93841731, -2.86149312,
        -2.78456892, -2.70764472, -2.63072053, -2.55379633, -2.47687213,
        -2.39994794, -2.32302374, -2.24609954, -2.16917535, -2.09225115,
        -2.01532695, -1.93840276, -1.86147856, -1.78455436, -1.70763017,
        -1.63070597, -1.55378177, -1.47685758, -1.39993338, -1.32300918,
        -1.24608498, -1.16916079, -1.09223659, -1.01531239, -0.9383882 ,
        -0.861464  , -0.7845398 , -0.70761561, -0.63069141, -0.55376721,
        -0.47684302, -0.39991882, -0.32299462, -0.24607043, -0.16914623,
        -0.09222203, -0.01529784,  0.06162636,  0.13855056,  0.21547475,
         0.29239895,  0.36932315,  0.44624734,  0.52317154,  0.60009574,
         0.67701993,  0.75394413,  0.83086833,  0.90779252,  0.98471672,
         1.06164092,  1.13856511,  1.21548931,  1.29241351,  1.3693377 ,
         1.4462619 ,  1.5231861 ,  1.60011029,  1.67703449,  1.75395869,
         1.83088288,  1.90780708,  1.98473128,  2.06165548,  2.13857967,
         2.21550387,  2.29242807,  2.36935226,  2.44627646,  2.52320066,
         2.60012485,  2.67704905,  2.75397325,  2.83089744,  2.90782164,
         2.98474584,  3.06167003,  3.13859423,  3.21551843,  3.29244262,
         3.36936682,  3.44629102,  3.52321521,  3.60013941,  3.67706361,
         3.7539878 ]),

Il grafico che visualizzeremo sarà simile al seguente:

Esempi grafici di Distribuzione normale
Esempi grafici di Distribuzione normale

Nel grafico ad istogramma si vede chiaramente la forma della curva Gaussiana generata dalla funzione randn.

Scaliamo il grafico

In questo esempio vediamo come scalare il grafico della distribuzione normale moltiplicando per 10 ed aggiungendo 20, il risultato è il seguente:

from scipy.stats import norm 
import numpy as np 
import matplotlib.pyplot as plt

r = 10 * np.random.randn(10000) + 20

plt.hist(r, bins=100)
Out[52]: 
(array([  1.,   0.,   0.,   0.,   0.,   2.,   2.,   2.,   2.,   3.,   4.,
          8.,   4.,   9.,   9.,   7.,  16.,  12.,  17.,  19.,  24.,  25.,
         48.,  46.,  42.,  54.,  57.,  79.,  90.,  96., 115., 112., 142.,
        140., 147., 156., 175., 204., 175., 194., 224., 235., 258., 285.,
        281., 294., 259., 310., 307., 311., 306., 282., 287., 296., 267.,
        297., 262., 265., 226., 255., 200., 205., 196., 159., 161., 167.,
        150., 127., 107., 113.,  81.,  79.,  78.,  58.,  55.,  45.,  52.,
         40.,  25.,  28.,  26.,  11.,  24.,  13.,   6.,   9.,  11.,   5.,
          4.,   7.,   1.,   2.,   1.,   2.,   1.,   3.,   1.,   0.,   1.,
          1.]), array([-17.42715237, -16.68030858, -15.93346478, -15.18662099,
        -14.43977719, -13.6929334 , -12.9460896 , -12.19924581,
        -11.45240201, -10.70555822,  -9.95871442,  -9.21187062,
         -8.46502683,  -7.71818303,  -6.97133924,  -6.22449544,
         -5.47765165,  -4.73080785,  -3.98396406,  -3.23712026,
         -2.49027647,  -1.74343267,  -0.99658888,  -0.24974508,
          0.49709871,   1.24394251,   1.99078631,   2.7376301 ,
          3.4844739 ,   4.23131769,   4.97816149,   5.72500528,
          6.47184908,   7.21869287,   7.96553667,   8.71238046,
          9.45922426,  10.20606805,  10.95291185,  11.69975564,
         12.44659944,  13.19344323,  13.94028703,  14.68713083,
         15.43397462,  16.18081842,  16.92766221,  17.67450601,
         18.4213498 ,  19.1681936 ,  19.91503739,  20.66188119,
         21.40872498,  22.15556878,  22.90241257,  23.64925637,
         24.39610016,  25.14294396,  25.88978776,  26.63663155,
         27.38347535,  28.13031914,  28.87716294,  29.62400673,
         30.37085053,  31.11769432,  31.86453812,  32.61138191,
         33.35822571,  34.1050695 ,  34.8519133 ,  35.59875709,
         36.34560089,  37.09244468,  37.83928848,  38.58613228,
         39.33297607,  40.07981987,  40.82666366,  41.57350746,
         42.32035125,  43.06719505,  43.81403884,  44.56088264,
         45.30772643,  46.05457023,  46.80141402,  47.54825782,
         48.29510161,  49.04194541,  49.7887892 ,  50.535633  ,
         51.2824768 ,  52.02932059,  52.77616439,  53.52300818,
         54.26985198,  55.01669577,  55.76353957,  56.51038336,
         57.25722716]), <a list of 100 Patch objects>)

Esempi grafici di Distribuzione normale
Esempi grafici di Distribuzione normale

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.