X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Ffrequencies.q;h=523345be51e3a6955c3c13e9c3424314145f2bb9;hb=c919bc2cf709771292738b0a64a07bd04b3417ae;hp=d00c90c9072b6ff25f3bea65553dc534688c0f08;hpb=c141780c99e0aee7a50734d4a56e2adf6f16c909;p=pspp diff --git a/src/language/stats/frequencies.q b/src/language/stats/frequencies.q index d00c90c907..523345be51 100644 --- a/src/language/stats/frequencies.q +++ b/src/language/stats/frequencies.q @@ -1374,7 +1374,7 @@ freq_tab_to_hist (const struct freq_tab *ft, const struct variable *var) double x_max = -DBL_MAX; struct histogram *hist; - const double bins = 11; + int bins; struct hsh_iterator hi; struct hsh_table *fh = ft->data; @@ -1390,6 +1390,11 @@ freq_tab_to_hist (const struct freq_tab *ft, const struct variable *var) if ( frq->value.f > x_max ) x_max = frq->value.f ; } + /* Sturges' formula. */ + bins = ceil (log (ft->valid_cases) / log (2) + 1); + if (bins < 5) + bins = 5; + hist = histogram_create (bins, x_min, x_max); for( i = 0 ; i < ft->n_valid ; ++i )