Facebook
From Paride D'Ostilio, 1 Month ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 121
  1. float[][] data = {
  2.   {7.2,7.5,7.6,7.5,7.5,7.4,7.1,7.0,7.0,6.9,6.9,7.1,7.2,7.3,7.1,7.1,7.0,7.2,7.3,7.3},
  3.   {7.4,7.4,7.5,7.3,7.6,7.5,7.5,7.4,7.3,7.3,7.2,7.4,7.5,7.5,7.5,7.4,7.2,7.3,7.5,7.6},
  4.   {7.4,7.5,7.5,7.6,7.6,7.5,7.4,7.5,7.8,7.5,7.5,7.6,7.8,7.8,7.4,7.8,7.9,7.4,7.5,7.5}
  5.   };
  6.  
  7. float arrayMax(float[][] array){
  8.   float max = array[0][0];
  9.   for (int i=0; i< array.length; i++){
  10.     for (int j=0; j<array[i].length; j++){
  11.       if(array[i][j]> max){
  12.       max = array[i][j];
  13.       }
  14.     }
  15.   }
  16.   return max;
  17. }
  18.    
  19. float arrayMin(float[][] array){
  20.   float min = array[0][0];
  21.   for (int i=0; i< array.length; i++){
  22.     for (int j=0; j<array[i].length; j++){
  23.       if(array[i][j] < min){
  24.       min = array[i][j];
  25.       }
  26.     }
  27.   }
  28.   return min;
  29. }
  30.  
  31.  
  32. void printTable(float[][] data, int high, int large){
  33.   fill(0);
  34.   textSize(high/30);
  35.   int margin=(40);
  36.   int cols = data.length;
  37.   int rows = data[0].length;
  38.   int ySpacing = (high-margin)/(rows+1);
  39.   int xSpacing = (large-margin)/(cols);
  40.  
  41.   for (int i=0; i< cols; i++){
  42.   text("column: "+ i, margin + xSpacing*(i), margin );
  43.     for(int j=0; j< rows; j++){
  44.       text(data[i][j], margin + xSpacing*(i), margin + ySpacing*(1+j));
  45.     }
  46.   }
  47. }
  48.  
  49.  
  50.  
  51. float average(float[] data){
  52.   float sum = 0;
  53.   float average= 0;
  54.   for(int i=0; i < data.length; i++){
  55.     sum= sum + data[i];
  56.   }
  57.   return average = sum/(float)data.length;
  58. }
  59.  
  60.  
  61. void printGraph(float[][] data, int large, int high, int x, int y){
  62.   int margin = 40;
  63.   float max = arrayMax( data);
  64.   int xSpacing = (large-2*margin)/((data.length+1)*data[0].length);
  65.   int ySpace = high - 2*margin;
  66.   int yBase = high - margin;
  67.   print(ySpace);
  68.  
  69.   //create an array with normalized values from data array
  70.   float[][] normalizedArray = new float[data.length][data[0].length];
  71.   for (int i=0;  i<data.length; i++){
  72.     for(int j=0; j<data[i].length; j++){
  73.       normalizedArray[i][j] = data[i][j]/max;
  74.     }
  75.   }
  76.  
  77.   //draws the bars
  78.   for (int i=0; i<data.length; i++){
  79.     fill(0,0,(i+1)*(255/data.length));
  80.     for( int j=0; j<data[i].length; j++){
  81.       rect(x +margin + i*xSpacing+ j *(data.length+1)*xSpacing , yBase - (normalizedArray[i][j]*ySpace) , xSpacing , normalizedArray[i][j]* ySpace);
  82.     }
  83.   }
  84.  
  85.   //draw axis
  86.   strokeWeight(3);
  87.   textAlign(RIGHT);
  88.   fill(0);
  89.   textSize(high/30);
  90.   line(x+ margin/2, margin, x+ margin/2, yBase);
  91.   line(x + margin/2, yBase, x + large -margin, yBase);
  92.   for (int i=0; i<max+1; i++){
  93.     text(i, x + margin/4, yBase- i*(ySpace/max));
  94.   }
  95.   textAlign(CENTER);
  96.   for(int i=0; i<data[0].length; i++){
  97.     text( i*5, x+margin+ xSpacing +i*(data.length+1)*xSpacing , yBase + margin/2);
  98.   }
  99.  
  100.  
  101. }
  102.  
  103.  
  104.  
  105.  
  106.  
  107. void setup(){
  108.   size(1600,800);
  109.   background(255);
  110.   float totalAverage=0;
  111.   printTable(data, height, width/3);
  112.  
  113.   //use repetition to average on each experiment
  114.   float[] averageArray = new float[data.length];
  115.   for (int i =0; i < data.length; i++) {
  116.     averageArray[i]= average(data[i]);
  117.   }
  118.  
  119.  
  120.   //use average function to calculate total average
  121.   totalAverage= average(averageArray);
  122.   float max = arrayMax(data);
  123.   float min = arrayMin(data);
  124.   print("Averages of each experiment: " );
  125.   for (int i=0; i< averageArray.length; i++){
  126.     print( averageArray[i] + " ");
  127.   }
  128.   println();
  129.   println("total average: " + totalAverage);
  130.   println("max: " + max);
  131.   println("min: " + min);
  132.  
  133.   printGraph(data, 2*width/3, height, width/3, 0);
  134. }
  135.    
  136.