Ignore:
Timestamp:
Dec 19, 2011, 5:08:12 PM (11 years ago)
Author:
tjeerd@…
Message:

VIS-70, VIS-74 and some boxplot stuff

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/visualization/VisualizeController.groovy

    r2129 r2133  
    923923
    924924            for ( String key : dataMap.keySet() ) {
    925                 double dblMEAN = computeMean(dataMap.get(key));
    926                 double dblSEM = computeSEM(dataMap.get(key),dblMEAN);
    927 
     925                def objInfos = computePercentile(dataMap.get(key),50);
     926                double dblMEDIAN = objInfos.get("value");
    928927                double Q1 = computePercentile(dataMap.get(key),25).get("value");
    929928                double Q3 = computePercentile(dataMap.get(key),75).get("value");
    930929
    931                 /* DEBUG
     930                // Calcultate 1.5* inter-quartile-distance
     931                double dblIQD = (Q3-Q1)*1.5;
     932
     933                /* // DEBUG
    932934                println("---");
    933935                println("  dataMap["+key+"]:: "+dataMap.get(key));
    934                 println("  dblMEAN:: "+dblMEAN);
    935                 println("  dblSEM:: "+dblSEM);
     936                println("  dblMEDIAN:: "+dblMEDIAN);
     937                println("  dblIQD:: "+dblIQD);
    936938                println("  Q1:: "+Q1);
    937939                println("  Q3:: "+Q3);
     
    941943                return_data[ "series" ] << [
    942944                        "name": key,
    943                         "y" : [key, (dblMEAN-dblSEM), Q1, dblMEAN, Q3, (dblMEAN+dblSEM)]
     945                        "y" : [key, objInfos.get("max"), (dblMEDIAN+dblIQD), Q3, dblMEDIAN, Q1, (dblMEDIAN-dblIQD), objInfos.get("min")]
    944946                ];
    945947            }
    946948
    947             println(return_data);
     949            //println(return_data);
    948950
    949951
     
    13021304        listOfValues.sort();
    13031305
    1304         def listSize = listOfValues.size();
     1306        def listSize = listOfValues.size()-1;
    13051307
    13061308        def objReturn = null;
     1309        def objMin = null;
     1310        def objMax = null;
    13071311
    13081312        def dblFactor = Percentile/100;
    13091313
    1310                 if( listSize > 0 ) {
    1311             def listHalf = (int) Math.abs(listSize*dblFactor);
    1312             if(listHalf==listSize*dblFactor) {
     1314                if( listSize >= 0 ) {
     1315            def intPointer = (int) Math.abs(listSize*dblFactor);
     1316            if(intPointer==listSize*dblFactor) {
     1317                // If we exactly end up at an item, take this item
     1318                objReturn = listOfValues.get(intPointer);
     1319            } else {
    13131320                // If we don't exactly end up at an item, take the mean of the 2 adjecent values
    1314                 objReturn = (listOfValues.get(listHalf)+listOfValues.get(listHalf-1))/2;
    1315             } else {
    1316                 // If we exactly end up at an item, take this item
    1317                 objReturn = listOfValues.get(listHalf);
    1318             }
    1319         }
    1320 
    1321                 return ["value": objReturn];
     1321                objReturn = (listOfValues.get(intPointer)+listOfValues.get(intPointer+1))/2;
     1322            }
     1323
     1324            objMin = listOfValues.get(0);
     1325            objMax = listOfValues.get(listSize);
     1326        }
     1327
     1328                return ["value": objReturn, "min": objMin, "max": objMax];
    13221329        }
    13231330
Note: See TracChangeset for help on using the changeset viewer.