- float[][] experiments = {
- {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},
- {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},
- {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}
- };
- void setup()
- {
- size(1200,500);
- colorMode(HSB,360,100,100);
- for(int i = 0; i < experiments.length; i++)
- {
- int time = 0;
- //Experiment color
- fill((i * 100) % 360, 100, 100);
- rect((i + 0.5f) * width/20, height/25, width/20,height/25);
- //Experiment label
- fill(0);
- text("Exp " + (i+1),(i + 0.65f) * width/20, 1.75f* height/25);
- for(int u = 0; u < experiments[i].length; u++)
- {
- //Data cell color
- fill(30, 30, 100);
- rect((i + 0.5f) * width/20, (u+2) * height/25, width/20,height/25);
- //Data value text
- fill(0);
- text(experiments[i][u],(i + 0.6f) * width/20, (u+2+0.85f) * height/25);
- //Bar graph color
- fill((i * 100) % 360, 100, 70);
- rect((u + 4.75f) * width/25 + i * width/100, height/25 + (height * 0.84f - height * 0.84f * (experiments[i][u]-5f)/3f), width/120, height * 0.84f * (experiments[i][u]-5f)/3f);
- //Time text for the second experiment
- if(i == 1)
- {
- fill(0);
- text(time, (u+4.75f+i*0.25f) * width/25, height * 0.9f);
- }
- time += 5;
- }
- }
- fill(0);
- textSize(20);
- text("pH Level by Time", width/2,height*0.05f);
- //Calculating analysis data
- ArrayList<Float> experiment_averages = new ArrayList<Float>();
- Float overall_average = 0f;
- for(int i = 0; i < experiments.length; i++)
- {
- experiment_averages.add(average(experiments[i]));
- }
- overall_average = (experiment_averages.get(0) + experiment_averages.get(1) + experiment_averages.get(2))/3;
- //Displaying analysis data
- println(experiment_averages);
- println(overall_average);
- println(maximum(experiments));
- println(minimum(experiments));
- textSize(14);
- text("Avg: " + overall_average + " Min: "+ minimum(experiments) + " Max: " + maximum(experiments),width/35,height*0.95f);
- save("Problem_4.png");
- }
- // Function to calculate the average value of a set of data
- float average(float[] data) {
- float sum = 0;
- for (int i = 0; i < data.length; i++) {
- sum += data[i];
- }
- return sum / data.length;
- }
- // Function to find the maximum value in a multidimensional array
- float maximum(float[][] data) {
- float max = data[0][0]; // Initialize max with the first element of the array
- for (int i = 0; i < data.length; i++) {
- for (int j = 0; j < data[i].length; j++) {
- if (data[i][j] > max) {
- max = data[i][j];
- }
- }
- }
- return max;
- }
- // Function to find the minimum value in a multidimensional array
- float minimum(float[][] data) {
- float min = data[0][0]; // Initialize min with the first element of the array
- for (int i = 0; i < data.length; i++) {
- for (int j = 0; j < data[i].length; j++) {
- if (data[i][j] < min) {
- min = data[i][j];
- }
- }
- }
- return min;
- }