public static DefaultBoxAndWhiskerCategoryDataset getDatasetForBoxAndWhiskers(
      ObservableList<EvaluationHelper> allEvaluationHelper, ArrayList<Bereich> bereiche) {

    int categoryCount = bereiche.size();
    int entityCount = allEvaluationHelper.size();

    final DefaultBoxAndWhiskerCategoryDataset dataset = new DefaultBoxAndWhiskerCategoryDataset();

    for (int j = 0; j < categoryCount; j++) {
      final List<Double> list = new ArrayList<Double>();
      for (int k = 0; k < entityCount; k++) {

        int valCount = 0;
        double avValue = 0;

        for (Item item : allEvaluationHelper.get(k).getItems()) {
          if (bereiche.get(j).equals(item.getBereich())) {
            if (!allEvaluationHelper.get(k).getItemWertung().get(valCount).isEmpty()) {
              avValue +=
                  Double.parseDouble(allEvaluationHelper.get(k).getItemWertung().get(valCount));
            }
            valCount++;
          }
        }
        if (valCount != 0) {
          avValue /= valCount;
        }

        list.add(new Double(avValue));
      }
      dataset.add(
          list,
          SeCatResourceBundle.getInstance().getString("scene.chart.all.averagevalues"),
          bereiche.get(j).getName());
    }
    return dataset;
  }
 /**
  * Adds a list of values relating to one box-and-whisker entity to the table. The various median
  * values are calculated.
  *
  * @param list a collection of values from which the various medians will be calculated.
  * @param rowKey the row key (<code>null</code> not permitted).
  * @param columnKey the column key (<code>null</code> not permitted).
  * @see #add(BoxAndWhiskerItem, Comparable, Comparable)
  */
 public void add(List list, Comparable rowKey, Comparable columnKey) {
   BoxAndWhiskerItem item = BoxAndWhiskerCalculator.calculateBoxAndWhiskerStatistics(list);
   add(item, rowKey, columnKey);
 }
Esempio n. 3
0
  /**
   * Creates a sample dataset.
   *
   * @return A sample dataset.
   */
  private BoxAndWhiskerCategoryDataset createSampleDataset(ArrayList<Double> Pf) {

    final int seriesCount = 5;
    final int categoryCount = 4;
    final int entityCount = 22;
    // String sDirectorio = "experiments\\2015-10-30-mazeoff";
    File f = new File(experimentsDir);
    String extension;
    File[] files = f.listFiles();
    Hashtable<String, String> Pop = new Hashtable<>();
    PrintWriter escribir;
    Scanner sc = null;
    ArrayList<Integer> aPops = new ArrayList<>();
    ArrayList<Double> aPf = new ArrayList<>();
    ArrayList<String> aTech = new ArrayList<>();

    Hashtable<String, List> info = new Hashtable();

    // String[] aMode = {"levywalk", "lwphevap", "hybrid", "hybrid3", "hybrid4"};
    for (String mode : aMode) {
      info.put(mode, new ArrayList());
    }

    final DefaultBoxAndWhiskerCategoryDataset dataset = new DefaultBoxAndWhiskerCategoryDataset();

    for (File file : files) {
      extension = "";
      int i = file.getName().lastIndexOf('.');
      int p = Math.max(file.getName().lastIndexOf('/'), file.getName().lastIndexOf('\\'));
      if (i > p) {
        extension = file.getName().substring(i + 1);
      }

      // System.out.println(file.getName() + "extension" + extension);
      if (file.isFile() && extension.equals("csv") && file.getName().startsWith("dataCollected")) {
        System.out.println(file.getName());
        System.out.println("get: " + file.getName());
        String[] filenamep = file.getName().split(Pattern.quote("+"));

        System.out.println("file" + filenamep[8]);

        int popsize = Integer.valueOf(filenamep[3]);
        double pf = Double.valueOf(filenamep[5]);
        String mode = filenamep[7];

        int maxIter = -1;
        // if (!filenamep[8].isEmpty()) {
        maxIter = Integer.valueOf(filenamep[9]);
        // }

        System.out.println("psize:" + popsize);
        System.out.println("pf:" + pf);
        System.out.println("mode:" + mode);
        System.out.println("maxIter:" + maxIter);

        // String[] aMode = {"random", "levywalk", "sandc", "sandclw"};
        // String[] aMode = {"levywalk", "lwphevap", "hybrid", "hybrid3", "hybrid4", "sequential"};
        // String[] aMode = {"levywalk", "lwphevap", "hybrid", "sequential"};

        if (
        /*Pf == pf && */ isInMode(aMode, mode)) {
          final List list = new ArrayList();
          try {
            sc = new Scanner(file);

          } catch (FileNotFoundException ex) {
            Logger.getLogger(DataCollectedLatexConsolidatorSASOMessagesSend1.class.getName())
                .log(Level.SEVERE, null, ex);
          }
          int roundNumber = 0;
          double globalInfoCollected = 0;

          String[] data = null;
          while (sc.hasNext()) {
            String line = sc.nextLine();
            data = line.split(",");
            // System.out.println("data");
            roundNumber = Integer.valueOf(data[0]);
            globalInfoCollected = Double.valueOf(data[4]);

            if (globalInfoCollected >= 90 && Pf.contains(pf)) {
              info.get(mode).add(roundNumber);
              break;
            }
          }

          LOGGER.debug("Adding series " + i);
          LOGGER.debug(list.toString());
          if (Pf.contains(pf)) {
            /*pf == 1.0E-4 || pf == 3.0E-4*/
            if (Pf.size() == 1) {
              dataset.add(list, popsize, getTechniqueName(mode));
            } else {
              dataset.add(list, String.valueOf(popsize) + "-" + pf, getTechniqueName(mode));
            }
          }
        }
      }
    }

    for (String key : info.keySet()) {
      System.out.println(key + ":" + info.get(key).size() / 30 * 100.0);
      dataset.add(info.get(key), 10, getTechniqueName(key));
    }

    return dataset;
  }
Esempio n. 4
0
  /**
   * Creates a sample dataset.
   *
   * @return A sample dataset.
   */
  private BoxAndWhiskerCategoryDataset createSampleDataset(ArrayList<Double> Pf) {

    final int seriesCount = 5;
    final int categoryCount = 4;
    final int entityCount = 22;
    String sDirectorio = experimentsDir;
    File f = new File(sDirectorio);
    String extension;
    File[] files = f.listFiles();
    Hashtable<String, String> Pop = new Hashtable<>();
    PrintWriter escribir;
    Scanner sc = null;
    ArrayList<Integer> aPops = new ArrayList<>();
    ArrayList<Double> aPf = new ArrayList<>();
    ArrayList<String> aTech = new ArrayList<>();

    final DefaultBoxAndWhiskerCategoryDataset dataset = new DefaultBoxAndWhiskerCategoryDataset();

    for (File file : files) {
      extension = "";
      int i = file.getName().lastIndexOf('.');
      int p = Math.max(file.getName().lastIndexOf('/'), file.getName().lastIndexOf('\\'));
      if (i > p) {
        extension = file.getName().substring(i + 1);
      }

      // System.out.println(file.getName() + "extension" + extension);
      if (file.isFile()
          && extension.equals("csv")
          && file.getName().startsWith("experiment")
          && file.getName().contains(mazeMode)) {
        System.out.println(file.getName());
        System.out.println("get: " + file.getName());
        String[] filenamep = file.getName().split(Pattern.quote("+"));

        System.out.println("file" + filenamep[8]);

        int popsize = Integer.valueOf(filenamep[2]);
        double pf = Double.valueOf(filenamep[4]);
        String mode = filenamep[6];

        int maxIter = -1;
        // if (!filenamep[8].isEmpty()) {
        maxIter = Integer.valueOf(filenamep[8]);
        // }

        System.out.println("psize:" + popsize);
        System.out.println("pf:" + pf);
        System.out.println("mode:" + mode);
        System.out.println("maxIter:" + maxIter);

        // String[] aMode = {"random", "levywalk", "sandc", "sandclw"};
        if (
        /*Pf == pf && */ isInMode(aMode, mode)) {
          final List list = new ArrayList();
          try {
            sc = new Scanner(file);

          } catch (FileNotFoundException ex) {
            Logger.getLogger(DataCollectedLatexConsolidatorSASOMessagesSend1.class.getName())
                .log(Level.SEVERE, null, ex);
          }
          int agentsCorrect = 0;
          int worldSize = 0;
          double averageExplored = 0.0;
          int bestRoundNumber = 0;
          double avgSend = 0;
          double avgRecv = 0;
          double avgdataExplInd = 0;
          ArrayList<Double> acSt = new ArrayList<>();
          ArrayList<Double> avgExp = new ArrayList<>();
          ArrayList<Double> bestR = new ArrayList<>();
          ArrayList<Double> avSnd = new ArrayList<>();
          ArrayList<Double> avRecv = new ArrayList<>();
          ArrayList<Double> avIndExpl = new ArrayList<>();

          String[] data = null;
          while (sc.hasNext()) {
            String line = sc.nextLine();
            // System.out.println("line:" + line);
            data = line.split(",");
            agentsCorrect = Integer.valueOf(data[0]);
            // agentsIncorrect = Integer.valueOf(data[1]); // not used
            worldSize = Integer.valueOf(data[3]);
            averageExplored = Double.valueOf(data[4]);
            // data[3] stdavgExplored - not used
            bestRoundNumber = Integer.valueOf(data[6]);
            avgSend = Double.valueOf(data[7]);
            avgRecv = Double.valueOf(data[8]);
            avgdataExplInd = Double.valueOf(data[11]);

            // Add Data and generate statistics
            acSt.add((double) agentsCorrect);
            avgExp.add(averageExplored);

            avSnd.add(avgSend);
            avRecv.add(avgRecv);
            avIndExpl.add(avgdataExplInd);

            list.add(new Double(avgSend));
          }
          LOGGER.debug("Adding series " + i);
          LOGGER.debug(list.toString());
          if (Pf.contains(pf)) {
            /*pf == 1.0E-4 || pf == 3.0E-4*/
            if (Pf.size() == 1) {
              dataset.add(list, popsize, getTechniqueName(mode));
            } else {
              dataset.add(list, String.valueOf(popsize) + "-" + pf, getTechniqueName(mode));
            }
          }
        }
      }
    }

    /*for (int i = 0; i < seriesCount; i++) {
    for (int j = 0; j < categoryCount; j++) {
    final List list = new ArrayList();
    // add some values...
    for (int k = 0; k < entityCount; k++) {
    final double value1 = 10.0 + Math.random() * 3;
    list.add(new Double(value1));
    final double value2 = 11.25 + Math.random(); // concentrate values in the middle
    list.add(new Double(value2));
    }
    LOGGER.debug("Adding series " + i);
    LOGGER.debug(list.toString());
    dataset.add(list, "Series " + i, " Type " + j);
    }

    }*/
    return dataset;
  }