diff --git a/src/main/java/myutil/DataElement.java b/src/main/java/myutil/DataElement.java index 376e43c555fe86916161cd66f83e4f403a10c444..b1f6b0a37d2e537121a30122180ea1471418eb1b 100644 --- a/src/main/java/myutil/DataElement.java +++ b/src/main/java/myutil/DataElement.java @@ -117,4 +117,6 @@ public class DataElement implements GenericTree { + + } // Class diff --git a/src/main/java/myutil/JFrameStatistics.java b/src/main/java/myutil/JFrameStatistics.java index 0825089862596125efef930bb2026dae10dfce2e..7a24f5a77bd1d13f49a5e57904b929eb95d4f1c3 100644 --- a/src/main/java/myutil/JFrameStatistics.java +++ b/src/main/java/myutil/JFrameStatistics.java @@ -47,6 +47,7 @@ import myutilsvg.SVGGeneration; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; +import org.jfree.data.general.DefaultPieDataset; import org.jfree.data.statistics.HistogramDataset; import org.jfree.data.statistics.HistogramType; import ui.*; @@ -159,9 +160,17 @@ public class JFrameStatistics extends JFrame implements ActionListener, GenericT return; } - // Tab already exist? - String title = "Histogram of " + de.toString() + ": value"; + + showHistogram(de); + showPieChart(de); + + } + + public void showHistogram(DataElement de) { + String title = "Histogram of " + de.toString(); + + // Tab already exist? if (mainPane.indexOfTab(title) > -1) { mainPane.setSelectedIndex(mainPane.indexOfTab(title)); return; @@ -174,8 +183,53 @@ public class JFrameStatistics extends JFrame implements ActionListener, GenericT JFreeChart histogram = ChartFactory.createHistogram("Histogram: " + de.toString(), de.toString(), "Frequency", dataset); - // Adding histogram to tabbed pane ChartPanel myChart = new ChartPanel(histogram); + // Adding histogram to tabbed pane + addChart(title, myChart); + + } + + @SuppressWarnings("unchecked") + public void showPieChart(DataElement de) { + String title = "PieChart of " + de.toString() ; + + // Tab already exist? + if (mainPane.indexOfTab(title) > -1) { + mainPane.setSelectedIndex(mainPane.indexOfTab(title)); + return; + } + + DefaultPieDataset dataset = new DefaultPieDataset( ); + + HashMap<Double, Integer> map = new HashMap<>(); + for(int i=0; i<de.data.length; i++) { + if (map.containsKey(de.data[i])) { + Integer myInt = map.get(de.data[i]); + map.put(de.data[i], new Integer(myInt.intValue()+1)); + } else { + map.put(de.data[i], 0); + } + } + + for(Double d: map.keySet()) { + dataset.setValue(d, map.get(d)); + } + + + JFreeChart pieChart = ChartFactory.createPieChart( + title, // chart title + dataset, // data + true, // include legend + true, + false); + + ChartPanel myChart = new ChartPanel(pieChart); + addChart(title, myChart); + + + } + + public void addChart(String title, ChartPanel myChart) { myChart.setMouseWheelEnabled(true); mainPane.addTab(title, myChart); ButtonTabComponent ctb = new ButtonTabComponent(mainPane); diff --git a/src/main/java/ui/avatarinteractivesimulation/AvatarSimulationStatisticsPanel.java b/src/main/java/ui/avatarinteractivesimulation/AvatarSimulationStatisticsPanel.java index 4f150a96f1dd91f574ecbe05482aa240e84f3166..70e3304e4035761e7804f4255ef19b77b42544c9 100644 --- a/src/main/java/ui/avatarinteractivesimulation/AvatarSimulationStatisticsPanel.java +++ b/src/main/java/ui/avatarinteractivesimulation/AvatarSimulationStatisticsPanel.java @@ -233,7 +233,7 @@ public class AvatarSimulationStatisticsPanel extends JPanel implements ActionLis } - + // Opening stat window JFrameStatistics stats1 = new JFrameStatistics("Simulation stats", elts); stats1.setSize(1200,800);