diff --git a/src/main/java/com/application/GUI/LineChartFunctionality.java b/src/main/java/com/application/GUI/LineChartFunctionality.java index 29d61ae03de5354e6c3756e79ba94e41603aa299..badbc9278694c10a57bb7d7f86530ab10a745000 100644 --- a/src/main/java/com/application/GUI/LineChartFunctionality.java +++ b/src/main/java/com/application/GUI/LineChartFunctionality.java @@ -8,6 +8,7 @@ import javafx.scene.chart.XYChart; import org.apache.commons.math3.distribution.TDistribution; import org.apache.commons.math3.exception.MathIllegalArgumentException; import org.apache.commons.math3.stat.descriptive.SummaryStatistics; +import org.apache.commons.math3.stat.regression.SimpleRegression; import java.util.*; @@ -110,7 +111,6 @@ public class LineChartFunctionality { multiMap.computeIfAbsent(index, k -> new ArrayList<Double>()); multiMap.get(index).add(kwhValue); - // Connect the data to a series newSeries.getData().add(new XYChart.Data<String, Number>(String.valueOf(index), kwhValue)); index += 1; @@ -118,9 +118,43 @@ public class LineChartFunctionality { updateLineChart(newSeries); } + // Stores the data from the confidence interval in a new map Map<Integer, ArrayList<Double>> confidenceIntervalData = statistics(multiMap); + // Checks the max size for the arraylists needed for the data array later + int jMaxSize = 0; + for (int i = 0; i < confidenceIntervalData.size(); i++) { + if(confidenceIntervalData.get(i).size() > jMaxSize){ + jMaxSize = confidenceIntervalData.get(i).size(); + } + } + + // Defines an array to be used for the regression + double[][] data = new double[confidenceIntervalData.size()][jMaxSize]; + System.out.println(confidenceIntervalData); + for (int i = 0; i < confidenceIntervalData.size(); i++) { + ArrayList<Double> list = confidenceIntervalData.get(i); + for (int j = 0; j < list.size(); j++) { + data[i][j] += list.get(j); + } + } + + System.out.println(data.length); + System.out.println(data[12][1]); + + SimpleRegression simpleRegression = new SimpleRegression(); + + simpleRegression.addData(data); + + // and then you can predict the time at a given temperature value + System.out.println("Predicted Time: " + simpleRegression.predict(35)); + + // You can also get the slope and intercept from your data + System.out.println("slope = " + simpleRegression.getSlope()); + System.out.println("intercept = " + simpleRegression.getIntercept()); + + //simpleRegression.add return getLineChart(); } diff --git a/target/classes/com/application/GUI/LineChartFunctionality.class b/target/classes/com/application/GUI/LineChartFunctionality.class index a7c6a67ecc6871b6999f49cf884d5f375c5ac204..b70f1f5ff9795af6291e177c4daa94c56eb5bae4 100644 Binary files a/target/classes/com/application/GUI/LineChartFunctionality.class and b/target/classes/com/application/GUI/LineChartFunctionality.class differ