Facebook
From Paride D'Ostilio, 1 Month ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 121
  1. String dataString = "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2, 0, 0, 0, 0, 0, 0, 0, 0.4, 0.2, 8, 7.6, 0, 0, 0, 0, 0, 17.8, 18.6, 0, 0, 13.2, 4.8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2, 21.6, 0, 0, 20, 2.4, 0, 0, 0, 0, 0, 0, 8, 0.4, 0, 0, 0, 0, 0, 1.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.6, 0.2, 0, 0, 0, 0.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2, 0.2, 0, 0, 0, 0, 0, 0, 4, 0, 1.6, 0, 0.8, 5.2, 0, 0, 0, 0.4, 0.8, 16, 0.6, 4.6, 0.4, 0, 0, 0.6, 0.2, 0, 0, 0.2, 0, 0, 7.2, 0.4, 3.4, 24.2, 2.8, 17, 0, 1.2, 0.4, 0.2, 0.2, 18.4, 0, 0.2, 11.4, 1.6, 3.8, 5.2, 2.4, 1.8, 0, 0, 0, 0, 2.4, 4, 0, 0, 0.6, 3.8, 11.8, 2.6, 20, 0.6, 0, 2.6, 0, 0, 1.6, 2.6, 1.4, 0, 0.2, 37.6, 2.4, 1.6, 0, 0, 6.6, 1.4, 6, 7, 0.6, 0.2, 0, 0, 0, 0, 5, 0, 0.6, 4.2, 0, 11.4, 8.8, 10.4, 0.2, 0, 0, 3.8, 11, 1.8, 0, 0.4, 0, 0, 0, 0, 0.6, 3.6, 8.2, 0, 0, 0, 0, 0, 0.8, 0, 16.8, 7, 0.2, 0, 0, 0, 0, 0, 0, 0, 1.6, 5.8, 1, 0.2, 0.2, 0.4, 1, 0, 0, 0, 1.2, 30.4, 0.2, 0, 0, 6.2, 15.6, 16.6, 0, 0, 2.4, 0.4, 0.4, 1.6, 0, 0, 2.4, 2, 0, 0, 0, 37.8, 12.2, 4.2, 0, 27.6, 11.8, 0, 0, 0, 0, 0, 2, 0.4, 0.8, 0.6, 0, 0, 1.2, 14.2, 4.2, 3.8, 0, 9.4, 0.2, 0, 0, 0, 0, 0, 0, 0, 0, 0.6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 16.4, 1.8, 0, 0, 0, 0, 0, 0, 0, 0.8, 0.2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4.6, 0, 0, 8, 0.8, 0, 0, 0, 0, 0.4, 0, 0, 0.4, 0, 0, 2.2, 0, 0, 0, 0, 0, 0.2, 5.8, 61.2, 3, 0.2, 0";
  2.  
  3. // Function to convert the string data to an ArrayList of Floats
  4. ArrayList<Float> stringToFloatList(String data) {
  5.     String[] stringArray = split(data, ",");
  6.     ArrayList<Float> floatList = new ArrayList<Float>();
  7.     for (int i = 0; i < stringArray.length; i++) {
  8.         floatList.add(float(trim(stringArray[i])));
  9.     }
  10.     return floatList;
  11. }
  12.  
  13. //Function to sanitise a ArayList of Floats
  14. ArrayList<Float> sanitise(ArrayList<Float> floatList) {
  15.     ArrayList<Float> sanitisedData = new ArrayList<Float>();
  16.     for (int i=0; i< floatList.size(); i++) {
  17.         if (floatList.get(i) != float(0)) {
  18.             sanitisedData.add(floatList.get(i));
  19.         }
  20.     }
  21.     return sanitisedData;
  22. }
  23.  
  24. //Function to find mean
  25. float mean(ArrayList<Float> array){
  26.   float sum=0;
  27.   float mean=0;
  28.   for (int i=0; i<array.size(); i++){
  29.     sum=sum+array.get(i);
  30.   }
  31.   mean= sum / array.size();
  32.   return mean;
  33. }
  34.  
  35. //function to find minimum
  36. float min(ArrayList<Float> array){
  37.   float min = array.get(0);
  38.   for (int i =1; i< array.size(); i++){
  39.     if(array.get(i) < min){
  40.       min = array.get(i);
  41.     }
  42.   }
  43.   return min;
  44. }
  45.  
  46. //function to find maximum
  47. float max(ArrayList<Float> array){
  48.   float max = array.get(0);
  49.   for (int i =1; i< array.size(); i++){
  50.     if(array.get(i) > max){
  51.       max = array.get(i);
  52.     }
  53.   }
  54.   return max;
  55. }
  56.  
  57. //Function to find median  
  58. ArrayList<Float> median(ArrayList<Float> originalArray){
  59.   ArrayList<Float> orderedArray = new ArrayList<Float>();
  60.   ArrayList<Float> median = new ArrayList<Float>();
  61.   ArrayList<Float> array = new ArrayList<Float>(originalArray);
  62.   float min = 0;
  63.   float arrayLength = array.size();
  64.   while( array.size() > 0){
  65.     min = min(array);
  66.     orderedArray.add(min);
  67.     array.remove(Float.valueOf(min));
  68.   }
  69.   if (arrayLength %2 == 1){
  70.     median.add(orderedArray.get(int((arrayLength -1 )/2)));
  71.   }
  72.   else{
  73.     median.add(orderedArray.get(int(arrayLength/2-1)));
  74.     median.add(orderedArray.get(int(arrayLength/2)));
  75.   }
  76.   return median;
  77. }
  78.  
  79. //FUnction to find Standard deviation
  80. float standardDeviation(ArrayList<Float> array){
  81.   float mean = mean(array);
  82.   float sum = 0;
  83.   int arrayLength = array.size();
  84.   float standardDev = 0;
  85.   for (int i =0; i< array.size(); i++){
  86.     sum = sum + (array.get(i)-mean)*(array.get(i)-mean);
  87.   }
  88.   standardDev = sqrt(sum/arrayLength);
  89.   return standardDev;
  90. }
  91. // Function to find the index at which a value is in an array
  92. int findIndex(float[] array, float value) {
  93.     for (int i = 0; i < array.length; i++) {
  94.         if (array[i] == value) {
  95.             return i;
  96.         }
  97.     }
  98.     return -1;  // Return -1 if the value is not found
  99. }
  100.  
  101. //Function to find the mode
  102. ArrayList<Float> mode(ArrayList<Float> array){
  103.   ArrayList<Float> values = new ArrayList<Float>();
  104.   for(int l=0; l< array.size(); l++){
  105.     if(!values.contains(array.get(l))){
  106.       values.add(array.get(l));
  107.     }
  108.   }
  109.  
  110.   float[] times = new float[values.size()];
  111.   for(int i=0; i < values.size() ; i++){
  112.     for(int j=0; j< array.size(); j++){
  113.       if(values.get(i) == array.get(j)){
  114.         times[i] = times[i]+1;
  115.       }
  116.     }
  117.   }
  118.   ArrayList<Float> mode = new ArrayList<Float>();
  119.   float max = 0;
  120.   int condition = 0;
  121.   int index = 0;
  122.   while (condition == 0){
  123.     max = max(times);
  124.     index = findIndex(times, max);
  125.     mode.add(values.get(index));
  126.     times[index]=0;
  127.     if( max(times) == max){
  128.       condition = 1;
  129.     }
  130.   }
  131.   return mode;
  132. }
  133.    
  134.  
  135.  
  136.  
  137. void setup() {
  138.     size(520, 240);
  139.     background(255);
  140.     strokeWeight(height/200);
  141.     fill(0);
  142.     textSize(width/30);
  143.    
  144.     ArrayList<Float> floatList = stringToFloatList(dataString);
  145.     ArrayList<Float> sanitisedData = sanitise(floatList);
  146.     float mean = mean(sanitisedData);
  147.     float min = min(sanitisedData);
  148.     ArrayList<Float> median = median(sanitisedData);
  149.     float standardDev = standardDeviation(sanitisedData);
  150.     ArrayList<Float> mode = mode(sanitisedData);
  151.     println("original array: " , floatList);
  152.     println("sanitised data: ", sanitisedData);
  153.     text("Analysis results: ", 20, height/10);
  154.     text("value: ", width/2, height/10);
  155.     println("mean: ", mean);
  156.     text("mean: ", 20, height/10 + height/5);
  157.     text(mean, width/2, height/10 +height/5);
  158.     println("median: ", median);
  159.     text("median: ", 20, height/10 + 2*height/5);
  160.     for (int i = 0; i<median.size(); i++){
  161.       text(median.get(i), width/2+i*width/(2*median.size()), height/10 + 2*height/5);
  162.     }
  163.     println("Standard Deviation: ", standardDev);
  164.     text("Standard Deviation: ", 20, height/10 + 3* height/5);
  165.     text(standardDev, width/2, height/10 + 3* height/5);
  166.     print("mode: ", mode);
  167.     text("mode: ", 20, height/10 + 4* height/5);
  168.     for (int j= 0; j< mode.size(); j++){
  169.       text(mode.get(j), width/2+ j*width/(2*median.size()), height/10 + 4* height/5);
  170.     }
  171.     line(10, height/40, width-20, height/40);
  172.     line(10, height/5,  width-20, height/5);
  173.     line(10,  19*height/20,  width-20,  19*height/20);
  174.     line (width/2-20, height/40, width/2- 20, 19*height/20);
  175.     line (10, height/40, 10,  19*height/20);
  176.     line ( width-20, height/40,  width-20,  19*height/20);
  177.  
  178. }
  179.  
  180.