List of usage examples for org.jfree.data.statistics DefaultBoxAndWhiskerCategoryDataset add
public void add(BoxAndWhiskerItem item, Comparable rowKey, Comparable columnKey)
From source file:org.talend.dataprofiler.chart.TOPChartService.java
@Override public Object createDefaultBoxAndWhiskerCategoryDataset(Double mean, Double median, Double q1, Double q3, Double minRegularValue, Double maxRegularValue) { DefaultBoxAndWhiskerCategoryDataset dataset = ChartDatasetUtils.createBoxAndWhiskerDataset(); BoxAndWhiskerItem item = ChartDatasetUtils.createBoxAndWhiskerItem(mean, median, q1, q3, minRegularValue, maxRegularValue, null);//from w w w . j a va 2 s. c om dataset.add(item, "0", ""); //$NON-NLS-1$ //$NON-NLS-2$ @SuppressWarnings("rawtypes") List zerolist = new ArrayList(); dataset.add(zerolist, "1", ""); //$NON-NLS-1$ //$NON-NLS-2$ dataset.add(zerolist, "2", ""); //$NON-NLS-1$ //$NON-NLS-2$ dataset.add(zerolist, "3", ""); //$NON-NLS-1$ //$NON-NLS-2$ dataset.add(zerolist, "4", ""); //$NON-NLS-1$ //$NON-NLS-2$ dataset.add(zerolist, "5", ""); //$NON-NLS-1$ //$NON-NLS-2$ dataset.add(zerolist, "6", ""); //$NON-NLS-1$ //$NON-NLS-2$ return dataset; }
From source file:org.jax.pubarray.server.restful.GraphingResource.java
/** * Create a graph for the given configuration * @param graphConfiguration/*from w w w .j av a 2 s. c om*/ * the key * @return * the graph */ @SuppressWarnings("unchecked") private JFreeChart createProbeIntensityGraph(ProbeIntensityGraphConfiguration graphConfiguration) { try { Connection connection = this.getConnection(); String[] probeIds = graphConfiguration.getProbeIds(); double[][] probeDataRows = new double[probeIds.length][]; for (int i = 0; i < probeIds.length; i++) { probeDataRows[i] = this.persistenceManager.getDataRowForProbeID(connection, probeIds[i]); } TableColumnMetadata orderBy = graphConfiguration.getOrderProbesBy(); final List<Comparable> orderByItems; if (orderBy != null) { LOG.info("We are ordering by: " + orderBy); orderByItems = this.persistenceManager.getDesignDataColumn(connection, orderBy); } else { orderByItems = null; } TableMetadata metadata = this.persistenceManager.getDataTableMetadata(connection); final CategoryDataset categoryDataset; if (graphConfiguration.getGroupReplicates()) { switch (graphConfiguration.getGroupedGraphType()) { case BOX_PLOT: { categoryDataset = new DefaultBoxAndWhiskerCategoryDataset(); } break; case SCATTER_PLOT: { categoryDataset = new DefaultMultiValueCategoryDataset(); } break; default: throw new IllegalArgumentException( "don't know how to deal with plot type: " + graphConfiguration.getGroupedGraphType()); } } else { categoryDataset = new DefaultCategoryDataset(); } // iterate through all of the selected probesets List<QualifiedColumnMetadata> termsOfInterest = Arrays.asList(graphConfiguration.getTermsOfInterest()); for (int rowIndex = 0; rowIndex < probeDataRows.length; rowIndex++) { double[] currRow = probeDataRows[rowIndex]; assert currRow.length == metadata.getColumnMetadata().length - 1; // should we log2 transform the data? if (graphConfiguration.getLog2TransformData()) { for (int i = 0; i < currRow.length; i++) { currRow[i] = Math.log(currRow[i]) / LOG2_FACTOR; } } // iterate through the columns in the data table (each column // represents a different array) List<ComparableContainer<Double, Comparable>> rowElemList = new ArrayList<ComparableContainer<Double, Comparable>>(); for (int colIndex = 0; colIndex < currRow.length; colIndex++) { // we use +1 indexing here because we want to skip over // the probesetId metadata and get right to the // array intensity metadata TableColumnMetadata colMeta = metadata.getColumnMetadata()[colIndex + 1]; // check to see if we need to skip this data if (!graphConfiguration.getIncludeDataFromAllArrays()) { // if it's one of the "terms of interest" we will keep // it. we're using a brute force search here boolean keepThisOne = false; for (QualifiedColumnMetadata termOfInterest : termsOfInterest) { if (termOfInterest.getTableName().equals(metadata.getTableName()) && termOfInterest.getName().equals(colMeta.getName())) { keepThisOne = true; break; } } if (!keepThisOne) { continue; } } final String columnName = colMeta.getName(); final Comparable columnKey; if (orderByItems == null) { columnKey = columnName; } else { // the ordering will be done on the selected // "order by" design criteria columnKey = new ComparableContainer<String, Comparable>(columnName, orderByItems.get(colIndex), !graphConfiguration.getGroupReplicates()); // TODO remove me!!!! System.out.println("For array " + columnName + " the order by " + "value is: " + orderByItems.get(colIndex)); // end of remove me } rowElemList .add(new ComparableContainer<Double, Comparable>(currRow[colIndex], columnKey, false)); } Collections.sort(rowElemList); if (graphConfiguration.getGroupReplicates()) { switch (graphConfiguration.getGroupedGraphType()) { case BOX_PLOT: { DefaultBoxAndWhiskerCategoryDataset dataset = (DefaultBoxAndWhiskerCategoryDataset) categoryDataset; for (int i = 0; i < rowElemList.size(); i++) { List<Double> groupList = new ArrayList<Double>(); groupList.add(rowElemList.get(i).getElement()); Comparable colKey = rowElemList.get(i).getComparable(); i++; for (; i < rowElemList.size() && rowElemList.get(i).getComparable().equals(colKey); i++) { groupList.add(rowElemList.get(i).getElement()); } i--; dataset.add(groupList, probeIds[rowIndex], colKey); } } break; case SCATTER_PLOT: { DefaultMultiValueCategoryDataset dataset = (DefaultMultiValueCategoryDataset) categoryDataset; for (int i = 0; i < rowElemList.size(); i++) { List<Double> groupList = new ArrayList<Double>(); groupList.add(rowElemList.get(i).getElement()); Comparable colKey = rowElemList.get(i).getComparable(); i++; for (; i < rowElemList.size() && rowElemList.get(i).getComparable().equals(colKey); i++) { groupList.add(rowElemList.get(i).getElement()); } i--; dataset.add(groupList, probeIds[rowIndex], colKey); } } break; } } else { DefaultCategoryDataset dataset = (DefaultCategoryDataset) categoryDataset; for (ComparableContainer<Double, Comparable> rowElem : rowElemList) { dataset.addValue(rowElem.getElement(), probeIds[rowIndex], rowElem.getComparable()); } } } CategoryAxis xAxis = new CategoryAxis(); if (graphConfiguration.getGroupReplicates() && orderBy != null) { xAxis.setLabel(orderBy.getName()); } else { if (orderBy != null) { xAxis.setLabel("Arrays (Ordered By " + orderBy.getName() + ")"); } else { xAxis.setLabel("Arrays"); } } xAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_90); final NumberAxis yAxis; if (graphConfiguration.getLog2TransformData()) { yAxis = new NumberAxis("log2(Intensity)"); } else { yAxis = new NumberAxis("Intensity"); } yAxis.setAutoRange(true); yAxis.setAutoRangeIncludesZero(false); // TODO: this is a HACK to deal with auto-range bug in JFreeChart // which occurs when doing the grouped scatter plot if (graphConfiguration.getGroupReplicates() && graphConfiguration.getGroupedGraphType() == GroupedGraphType.SCATTER_PLOT) { double minVal = Double.POSITIVE_INFINITY; double maxVal = Double.NEGATIVE_INFINITY; for (double[] dataRow : probeDataRows) { for (double datum : dataRow) { if (datum > maxVal) { maxVal = datum; } if (datum < minVal) { minVal = datum; } } if (minVal != Double.POSITIVE_INFINITY && maxVal != Double.NEGATIVE_INFINITY && minVal != maxVal) { yAxis.setAutoRange(false); double margin = (maxVal - minVal) * 0.02; Range yRange = new Range(minVal - margin, maxVal + margin); yAxis.setRange(yRange); } } } // END HACK final CategoryItemRenderer renderer; if (graphConfiguration.getGroupReplicates()) { switch (graphConfiguration.getGroupedGraphType()) { case BOX_PLOT: { BoxAndWhiskerRenderer boxRenderer = new BoxAndWhiskerRenderer(); boxRenderer.setMaximumBarWidth(0.03); renderer = boxRenderer; } break; case SCATTER_PLOT: { renderer = new ScatterRenderer(); } break; default: throw new IllegalArgumentException( "don't know how to deal with plot type: " + graphConfiguration.getGroupedGraphType()); } } else { renderer = new LineAndShapeRenderer(); } Plot plot = new CategoryPlot(categoryDataset, xAxis, yAxis, renderer); return new JFreeChart("Intensity Values", plot); } catch (SQLException ex) { LOG.log(Level.SEVERE, "failed to generate image", ex); return null; } }
From source file:org.moeaframework.analysis.plot.Plot.java
/** * Displays the statistical results from an {@link AnalyzerResults} as a * box-and-whisker plot.//from w w w.j a v a 2 s . c om * * @param result the {@code AnalyzerResults} instance * @return a reference to this {@code Plot} instance */ public Plot add(AnalyzerResults result) { createCategoryPlot(); DefaultBoxAndWhiskerCategoryDataset dataset = new DefaultBoxAndWhiskerCategoryDataset(); for (String algorithm : result.getAlgorithms()) { for (String indicator : result.get(algorithm).getIndicators()) { List<Double> values = new ArrayList<Double>(); for (double value : result.get(algorithm).get(indicator).getValues()) { values.add(value); } dataset.add(values, algorithm, indicator); } } CategoryPlot plot = chart.getCategoryPlot(); plot.setDataset(dataset); return this; }
From source file:msi.gama.outputs.layers.ChartLayerStatement.java
/** * create dataset for box_whisker chart/*from ww w . jav a2 s. co m*/ * @return A sample dataset. */ private BoxAndWhiskerCategoryDataset createWhisker(final IScope scope) { final CategoryPlot plot = (CategoryPlot) chart.getPlot(); // final int seriesCount = 1; final int categoryCount = 3; final int entityCount = 2; final DefaultBoxAndWhiskerCategoryDataset dataset = new DefaultBoxAndWhiskerCategoryDataset(); for (int i = 0; i < datas.size(); i++) { // ChartData e = datas.get(i); for (int j = 0; j < categoryCount; j++) { final List list = new ArrayList(); // add some values... for (int k = 0; k < entityCount; k++) { // list.add(new Double(k*2)); // list.add(new Double(k*3)); 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)); } dataset.add(list, "Series " + i, " Type " + j); history.append("Series " + i); history.append(','); } } history.deleteCharAt(history.length() - 1); history.append(Strings.LN); plot.setDataset(dataset); chart.removeLegend(); final CategoryAxis axis = plot.getDomainAxis(); axis.setTickLabelFont(getTickFont()); axis.setLabelFont(getLabelFont()); // ((BarRenderer3D) plot.getRenderer()).setItemMargin(0.1); axis.setCategoryMargin(0.1); axis.setUpperMargin(0.05); axis.setLowerMargin(0.05); return dataset; }
From source file:org.sakaiproject.sitestats.impl.ServerWideReportManagerImpl.java
private BoxAndWhiskerCategoryDataset getHourlyUsageDataSet() { // log.info("Generating activityWeekBarDataSet"); List<ServerWideStatsRecord> hourlyUsagePattern = getHourlyUsagePattern(); if (hourlyUsagePattern == null) { return null; }// w w w . ja v a 2 s . co m DefaultBoxAndWhiskerCategoryDataset dataset = new DefaultBoxAndWhiskerCategoryDataset(); List[] hourList = new ArrayList[24]; for (int ii = 0; ii < 24; ii++) { hourList[ii] = new ArrayList(); } int totalDays = 0; Date prevDate = null; for (ServerWideStatsRecord regularUsers : hourlyUsagePattern) { Date currDate = (Date) regularUsers.get(0); if (!currDate.equals(prevDate)) { prevDate = currDate; totalDays++; } hourList[(Integer) regularUsers.get(1)].add((Long) regularUsers.get(2)); } for (int ii = 0; ii < 24; ii++) { // add zero counts, when no data for the day for (int jj = hourList[ii].size(); jj < totalDays; jj++) { hourList[ii].add(Long.valueOf(0)); } dataset.add(hourList[ii], "Last 30 days", "" + ii); } return dataset; }
From source file:com.diversityarrays.kdxplore.boxplot.BoxPlotPanel.java
private BoxAndWhiskerCategoryDataset createSampleDataSet(Bag<String> missingOrBad, Bag<String> suppressed, Double[] minMax) {/* w w w . j a v a 2 s. c o m*/ final DefaultBoxAndWhiskerCategoryDataset dataset = new DefaultBoxAndWhiskerCategoryDataset(); seriesCountByTraitName.clear(); minMax[0] = null; minMax[1] = null; int count = 0; for (TraitInstance instance : traitInstances) { TraitInstanceValueRetriever<?> y_tivr = tivrByTi.get(instance); String instanceName = traitNameStyle.makeTraitInstanceName(instance); List<Double> data = new ArrayList<Double>(); for (PlotOrSpecimen pos : plotSpecimens) { Plot plot = plotInfoProvider.getPlotByPlotId(pos.getPlotId()); if (plot == null || !plot.isActivated()) { continue; } TraitValue yTraitValue = y_tivr.getAttributeValue(plotInfoProvider, plot, null); if (yTraitValue == null || !(yTraitValue.comparable instanceof Number)) { missingOrBad.add(instanceName); continue; } else if (yTraitValue.suppressed) { // TODO count suppressed suppressed.add(instanceName); continue; } double y = ((Number) yTraitValue.comparable).doubleValue(); data.add(y); if (minMax[0] == null) { minMax[0] = y; minMax[1] = y; } else { minMax[0] = Math.min(minMax[0], y); minMax[1] = Math.max(minMax[1], y); } } seriesCountByTraitName.put(instanceName, count); String columnKey = ""; // TODO use something better? //$NON-NLS-1$ dataset.add(data, instanceName, columnKey); count++; } return dataset; }
From source file:it.eng.spagobi.engines.chart.bo.charttypes.boxcharts.BoxCharts.java
/** * Inherited by IChart: calculates chart value. * /*from w w w .j a v a 2s . c om*/ * @return the dataset * * @throws Exception the exception */ public DatasetMap calculateValue() throws Exception { logger.debug("IN"); String res = DataSetAccessFunctions.getDataSetResultFromId(profile, getData(), parametersObject); categories = new HashMap(); DefaultBoxAndWhiskerCategoryDataset dataset = new DefaultBoxAndWhiskerCategoryDataset(); SourceBean sbRows = SourceBean.fromXMLString(res); List listAtts = sbRows.getAttributeAsList("ROW"); // run all categories (one for each row) categoriesNumber = 0; boolean first = true; boolean first2 = true; double temp; for (Iterator iterator = listAtts.iterator(); iterator.hasNext();) { SourceBean category = (SourceBean) iterator.next(); List atts = category.getContainedAttributes(); // atts are all the serie, run through them and sets what you need List values = new ArrayList(); String nameP = ""; String value = ""; String catValue = ""; if (first2) { if (name.indexOf("$F{") >= 0) { setTitleParameter(atts); } if (getSubName() != null && getSubName().indexOf("$F") >= 0) { setSubTitleParameter(atts); } first2 = false; } for (Iterator iterator2 = atts.iterator(); iterator2.hasNext();) { SourceBeanAttribute object = (SourceBeanAttribute) iterator2.next(); nameP = new String(object.getKey()); value = new String((String) object.getValue()); if (nameP.equalsIgnoreCase("x")) { catValue = value; categoriesNumber = categoriesNumber + 1; categories.put(new Integer(categoriesNumber), value); } else { Double valore = Double.valueOf(value); // set minimum e maximus to avoid auto range of axis if (first) { min = valore.doubleValue(); max = valore.doubleValue(); first = false; } if (min > valore.doubleValue()) min = valore.doubleValue(); if (max < valore.doubleValue()) max = valore.doubleValue(); values.add(valore); } } dataset.add(values, "serie", catValue); } logger.debug("OUT"); DatasetMap datasets = new DatasetMap(); datasets.addDataset("1", dataset); return datasets; }
From source file:edu.ucla.stat.SOCR.chart.ChartGenerator_JTable.java
private BoxAndWhiskerCategoryDataset createBoxAndWhiskerCategoryDataset() { String[][] x = new String[xyLength][no_category]; String[][] y = new String[xyLength][1]; for (int index = 0; index < no_category; index++) for (int i = 0; i < xyLength; i++) x[i][index] = indepValues[i][index]; for (int index = 0; index < 1; index++) for (int i = 0; i < xyLength; i++) y[i][index] = depValues[i][index]; // create the dataset... DefaultBoxAndWhiskerCategoryDataset dataset = new DefaultBoxAndWhiskerCategoryDataset(); int SERIES_COUNT = xyLength; int CATEGORY_COUNT = no_category; String[][] values_storage = new String[SERIES_COUNT][CATEGORY_COUNT]; for (int s = 0; s < SERIES_COUNT; s++) for (int c = 0; c < CATEGORY_COUNT; c++) { dataset.add(createList(x[s][c]), y[s][0], independentHeaders[c]); values_storage[s][c] = x[s][c]; }// ww w. j av a 2 s . c o m return dataset; }
From source file:edu.msu.cme.rdp.classifier.train.validation.distance.TaxaSimilarityMain.java
public void createPlot(String plotTitle, File outdir) throws IOException { XYSeriesCollection dataset = new XYSeriesCollection(); DefaultBoxAndWhiskerCategoryDataset scatterDataset = new DefaultBoxAndWhiskerCategoryDataset(); PrintStream boxchart_dataStream = new PrintStream(new File(outdir, plotTitle + ".boxchart.txt")); boxchart_dataStream.println(/*from w ww . j av a 2 s.c om*/ "#\tkmer" + "\trank" + "\t" + "max" + "\t" + "avg" + "\t" + "min" + "\t" + "Q1" + "\t" + "median" + "\t" + "Q3" + "\t" + "98Pct" + "\t" + "2Pct" + "\t" + "comparisons" + "\t" + "sum"); for (int i = 0; i < ranks.size(); i++) { long[] countArray = sabCoutMap.get(ranks.get(i)); if (countArray == null) continue; double sum = 0.0; int max = 0; int min = 100; double mean = 0; int Q1 = -1; int median = -1; int Q3 = -1; int pct_98 = -1; int pct_2 = -1; long comparisons = 0; int minOutlier = 0; // we don't care about the outliers int maxOutlier = 0; // XYSeries series = new XYSeries(ranks.get(i)); for (int c = 0; c < countArray.length; c++) { if (countArray[c] == 0) continue; comparisons += countArray[c]; sum += countArray[c] * c; if (c < min) { min = c; } if (c > max) { max = c; } } // create series double cum = 0; for (int c = 0; c < countArray.length; c++) { if (countArray[c] == 0) continue; cum += countArray[c]; int pct = (int) Math.floor(100 * cum / comparisons); series.add(c, pct); if (pct_2 == -1 && pct >= 5) { pct_2 = c; } if (Q3 == -1 && pct >= 25) { Q3 = c; } if (median == -1 && pct >= 50) { median = c; } if (Q1 == -1 && pct >= 75) { Q1 = c; } if (pct_98 == -1 && pct >= 98) { pct_98 = c; } } if (!series.isEmpty()) { dataset.addSeries(series); BoxAndWhiskerItem item = new BoxAndWhiskerItem(sum / comparisons, median, Q1, Q3, pct_2, pct_98, minOutlier, maxOutlier, new ArrayList()); scatterDataset.add(item, ranks.get(i), ""); boxchart_dataStream.println("#\t" + GoodWordIterator.getWordsize() + "\t" + ranks.get(i) + "\t" + max + "\t" + format.format(sum / comparisons) + "\t" + min + "\t" + Q1 + "\t" + median + "\t" + Q3 + "\t" + pct_98 + "\t" + pct_2 + "\t" + comparisons + "\t" + sum); } } boxchart_dataStream.close(); Font lableFont = new Font("Helvetica", Font.BOLD, 28); JFreeChart chart = ChartFactory.createXYLineChart(plotTitle, "Similarity%", "Percent Comparisions", dataset, PlotOrientation.VERTICAL, true, true, false); ((XYPlot) chart.getPlot()).getRenderer().setStroke(new BasicStroke(2.0f)); chart.getLegend().setItemFont(new Font("Helvetica", Font.BOLD, 24)); chart.getTitle().setFont(lableFont); ((XYPlot) chart.getPlot()).getDomainAxis().setLabelFont(lableFont); ((XYPlot) chart.getPlot()).getDomainAxis().setTickLabelFont(lableFont); ValueAxis rangeAxis = ((XYPlot) chart.getPlot()).getRangeAxis(); rangeAxis.setRange(0, 100); rangeAxis.setTickLabelFont(lableFont); rangeAxis.setLabelFont(lableFont); ((NumberAxis) rangeAxis).setTickUnit(new NumberTickUnit(5)); ChartUtilities.writeScaledChartAsPNG(new PrintStream(new File(outdir, plotTitle + ".linechart.png")), chart, 800, 1000, 3, 3); BoxPlotUtils.createBoxplot(scatterDataset, new PrintStream(new File(outdir, plotTitle + ".boxchart.png")), plotTitle, "Rank", "Similarity%", lableFont); }
From source file:unalcol.termites.boxplots.RoundNumberGlobal.java
/** * Creates a sample dataset.//w w w . j a v a 2 s . c om * * @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; }