Example usage for org.jfree.data.statistics DefaultBoxAndWhiskerCategoryDataset getRowCount

List of usage examples for org.jfree.data.statistics DefaultBoxAndWhiskerCategoryDataset getRowCount

Introduction

In this page you can find the example usage for org.jfree.data.statistics DefaultBoxAndWhiskerCategoryDataset getRowCount.

Prototype

@Override
public int getRowCount() 

Source Link

Document

Returns the number of rows in the table.

Usage

From source file:gov.nih.nci.rembrandt.web.graphing.data.GeneExpressionPlot.java

public static HashMap generateBarChart(String gene, String reporter, HttpSession session, PrintWriter pw,
        GeneExpressionDataSetType geType) {
    String log2Filename = null;/*  www. java2s  .  co  m*/
    String rawFilename = null;
    String medianFilename = null;
    String bwFilename = "";
    String legendHtml = null;
    HashMap charts = new HashMap();
    PlotSize ps = PlotSize.MEDIUM;

    final String geneName = gene;
    final String alg = geType.equals(GeneExpressionDataSetType.GeneExpressionDataSet)
            ? RembrandtConstants.REPORTER_SELECTION_AFFY
            : RembrandtConstants.REPORTER_SELECTION_UNI;
    try {
        InstitutionCriteria institutionCriteria = InsitutionAccessHelper.getInsititutionCriteria(session);

        final GenePlotDataSet gpds = new GenePlotDataSet(gene, reporter, institutionCriteria, geType,
                session.getId());
        //final GenePlotDataSet gpds = new GenePlotDataSet(gene, institutionCriteria,GeneExpressionDataSetType.GeneExpressionDataSet );

        //LOG2 Dataset
        DefaultStatisticalCategoryDataset dataset = (DefaultStatisticalCategoryDataset) gpds.getLog2Dataset();

        //RAW Dataset
        CategoryDataset meanDataset = (CategoryDataset) gpds.getRawDataset();

        //B&W dataset
        DefaultBoxAndWhiskerCategoryDataset bwdataset = (DefaultBoxAndWhiskerCategoryDataset) gpds
                .getBwdataset();

        //Median dataset
        CategoryDataset medianDataset = (CategoryDataset) gpds.getMedianDataset();

        charts.put("diseaseSampleCountMap", gpds.getDiseaseSampleCountMap());

        //IMAGE Size Control
        if (bwdataset != null && bwdataset.getRowCount() > 5) {
            ps = PlotSize.LARGE;
        } else {
            ps = PlotSize.MEDIUM;
        }
        //SMALL/MEDIUM == 650 x 400
        //LARGE == 1000 x 400
        //put as external Props?
        int imgW = 650;
        if (ps == PlotSize.LARGE) {
            imgW = new BigDecimal(bwdataset.getRowCount()).multiply(new BigDecimal(75)).intValue() > 1000
                    ? new BigDecimal(bwdataset.getRowCount()).multiply(new BigDecimal(75)).intValue()
                    : 1000;
        }

        JFreeChart bwChart = null;

        //B&W plot
        CategoryAxis xAxis = new CategoryAxis("Disease Type");
        NumberAxis yAxis = new NumberAxis("Log2 Expression Intensity");
        yAxis.setAutoRangeIncludesZero(true);
        BoxAndWhiskerCoinPlotRenderer bwRenderer = null;
        // BoxAndWhiskerRenderer bwRenderer = new BoxAndWhiskerRenderer();
        if (reporter != null) {
            //single reporter, show the coins
            bwRenderer = new BoxAndWhiskerCoinPlotRenderer(gpds.getCoinHash());
            bwRenderer.setDisplayCoinCloud(true);
            bwRenderer.setDisplayMean(false);
            bwRenderer.setDisplayAllOutliers(true);
            bwRenderer.setToolTipGenerator(new CategoryToolTipGenerator() {
                public String generateToolTip(CategoryDataset dataset, int series, int item) {
                    String tt = "";
                    NumberFormat formatter = new DecimalFormat(".####");
                    String key = "";
                    //String s = formatter.format(-1234.567);  // -001235
                    if (dataset instanceof DefaultBoxAndWhiskerCategoryDataset) {
                        DefaultBoxAndWhiskerCategoryDataset ds = (DefaultBoxAndWhiskerCategoryDataset) dataset;
                        try {
                            String med = formatter.format(ds.getMedianValue(series, item));
                            tt += "Median: " + med + "<br/>";
                            tt += "Mean: " + formatter.format(ds.getMeanValue(series, item)) + "<br/>";
                            tt += "Q1: " + formatter.format(ds.getQ1Value(series, item)) + "<br/>";
                            tt += "Q3: " + formatter.format(ds.getQ3Value(series, item)) + "<br/>";
                            tt += "Max: " + formatter.format(
                                    FaroutOutlierBoxAndWhiskerCalculator.getMaxFaroutOutlier(ds, series, item))
                                    + "<br/>";
                            tt += "Min: " + formatter.format(
                                    FaroutOutlierBoxAndWhiskerCalculator.getMinFaroutOutlier(ds, series, item))
                                    + "<br/>";
                            //tt += "<br/><br/>Please click on the box and whisker to view a plot for this reporter.<br/>";
                            //tt += "X: " + ds.getValue(series, item).toString()+"<br/>";
                            //tt += "<br/><a href=\\\'#\\\' id=\\\'"+ds.getRowKeys().get(series)+"\\\' onclick=\\\'alert(this.id);return false;\\\'>"+ds.getRowKeys().get(series)+" plot</a><br/><br/>";
                            key = ds.getRowKeys().get(series).toString();
                        } catch (Exception e) {
                        }
                    }

                    return tt;
                }

            });
        } else {
            //groups, dont show coins
            bwRenderer = new BoxAndWhiskerCoinPlotRenderer();
            bwRenderer.setDisplayAllOutliers(true);
            bwRenderer.setToolTipGenerator(new CategoryToolTipGenerator() {
                public String generateToolTip(CategoryDataset dataset, int series, int item) {
                    String tt = "";
                    NumberFormat formatter = new DecimalFormat(".####");
                    String key = "";
                    //String s = formatter.format(-1234.567);  // -001235
                    if (dataset instanceof DefaultBoxAndWhiskerCategoryDataset) {
                        DefaultBoxAndWhiskerCategoryDataset ds = (DefaultBoxAndWhiskerCategoryDataset) dataset;
                        try {
                            String med = formatter.format(ds.getMedianValue(series, item));
                            tt += "Median: " + med + "<br/>";
                            tt += "Mean: " + formatter.format(ds.getMeanValue(series, item)) + "<br/>";
                            tt += "Q1: " + formatter.format(ds.getQ1Value(series, item)) + "<br/>";
                            tt += "Q3: " + formatter.format(ds.getQ3Value(series, item)) + "<br/>";
                            tt += "Max: " + formatter.format(
                                    FaroutOutlierBoxAndWhiskerCalculator.getMaxFaroutOutlier(ds, series, item))
                                    + "<br/>";
                            tt += "Min: " + formatter.format(
                                    FaroutOutlierBoxAndWhiskerCalculator.getMinFaroutOutlier(ds, series, item))
                                    + "<br/>";
                            tt += "<br/><br/>Please click on the box and whisker to view a plot for this reporter.<br/>";
                            //tt += "X: " + ds.getValue(series, item).toString()+"<br/>";
                            //tt += "<br/><a href=\\\'#\\\' id=\\\'"+ds.getRowKeys().get(series)+"\\\' onclick=\\\'alert(this.id);return false;\\\'>"+ds.getRowKeys().get(series)+" plot</a><br/><br/>";
                            key = ds.getRowKeys().get(series).toString();
                        } catch (Exception e) {
                        }
                    }
                    return "onclick=\"popCoin('" + geneName + "','" + key + "', '" + alg + "');\" | " + tt;

                }

            });
        }
        bwRenderer.setFillBox(false);

        CategoryPlot bwPlot = new CategoryPlot(bwdataset, xAxis, yAxis, bwRenderer);
        bwChart = new JFreeChart(bwPlot);

        //    JFreeChart bwChart = new JFreeChart(
        //       null /*"Gene Expression Plot (" + gene.toUpperCase() + ")"*/,
        //        new Font("SansSerif", Font.BOLD, 14),
        //        bwPlot,
        //        true
        //    );

        bwChart.setBackgroundPaint(java.awt.Color.white);
        //bwChart.getTitle().setHorizontalAlignment(TextTitle.DEFAULT_HORIZONTAL_ALIGNMENT.LEFT);

        bwChart.removeLegend();
        //END BW plot

        // create the chart...for LOG2 dataset
        JFreeChart log2Chart = ChartFactory.createBarChart(
                null /*"Gene Expression Plot (" + gene.toUpperCase() + ")"*/, // chart
                // title
                "Groups", // domain axis label
                "Log2 Expression Intensity", // range axis label
                dataset, // data
                PlotOrientation.VERTICAL, // orientation
                true, // include legend
                true, // tooltips?
                false // URLs?
        );

        //create the chart .... for RAW dataset
        JFreeChart meanChart = ChartFactory.createBarChart(
                null /*"Gene Expression Plot (" + gene.toUpperCase() + ")"*/, // chart
                // title
                "Groups", // domain axis label
                "Mean Expression Intensity", // range axis label
                meanDataset, // data
                PlotOrientation.VERTICAL, // orientation
                true, // include legend
                true, // tooltips?
                false // URLs?
        );

        //         create the chart .... for Median dataset
        JFreeChart medianChart = ChartFactory.createBarChart(
                null /*"Gene Expression Plot (" + gene.toUpperCase() + ")"*/, // chart
                // title
                "Groups", // domain axis label
                "Median Expression Intensity", // range axis label
                medianDataset, // data
                PlotOrientation.VERTICAL, // orientation
                true, // include legend
                true, // tooltips?
                false // URLs?
        );

        log2Chart.setBackgroundPaint(java.awt.Color.white);
        // lets start some customization to retro fit w/jcharts lookand feel
        CategoryPlot log2Plot = log2Chart.getCategoryPlot();
        CategoryAxis log2Axis = log2Plot.getDomainAxis();
        log2Axis.setLowerMargin(0.02); // two percent
        log2Axis.setCategoryMargin(0.20); // 20 percent
        log2Axis.setUpperMargin(0.02); // two percent

        // same for our fake chart - just to get the tooltips
        meanChart.setBackgroundPaint(java.awt.Color.white);
        CategoryPlot meanPlot = meanChart.getCategoryPlot();
        CategoryAxis meanAxis = meanPlot.getDomainAxis();
        meanAxis.setLowerMargin(0.02); // two percent
        meanAxis.setCategoryMargin(0.20); // 20 percent
        meanAxis.setUpperMargin(0.02); // two percent

        //   median plot
        medianChart.setBackgroundPaint(java.awt.Color.white);
        CategoryPlot medianPlot = medianChart.getCategoryPlot();
        CategoryAxis medianAxis = medianPlot.getDomainAxis();
        medianAxis.setLowerMargin(0.02); // two percent
        medianAxis.setCategoryMargin(0.20); // 20 percent
        medianAxis.setUpperMargin(0.02); // two percent

        // customise the renderer...
        StatisticalBarRenderer log2Renderer = new StatisticalBarRenderer();

        // BarRenderer renderer = (BarRenderer) plot.getRenderer();
        log2Renderer.setItemMargin(0.01); // one percent
        log2Renderer.setDrawBarOutline(true);
        log2Renderer.setOutlinePaint(Color.BLACK);
        log2Renderer.setToolTipGenerator(new CategoryToolTipGenerator() {

            public String generateToolTip(CategoryDataset dataset, int series, int item) {
                HashMap pv = gpds.getPValuesHashMap();
                HashMap std_d = gpds.getStdDevMap();

                String currentPV = (String) pv
                        .get(dataset.getRowKey(series) + "::" + dataset.getColumnKey(item));
                String stdDev = (String) std_d
                        .get(dataset.getRowKey(series) + "::" + dataset.getColumnKey(item));

                return "Probeset : " + dataset.getRowKey(series) + "<br/>Intensity : "
                        + new DecimalFormat("0.0000").format(dataset.getValue(series, item)) + "<br/>"
                        + RembrandtConstants.PVALUE + " : " + currentPV + "<br/>Std. Dev.: " + stdDev + "<br/>";
            }

        });
        log2Plot.setRenderer(log2Renderer);
        // customize the  renderer
        BarRenderer meanRenderer = (BarRenderer) meanPlot.getRenderer();
        meanRenderer.setItemMargin(0.01); // one percent
        meanRenderer.setDrawBarOutline(true);
        meanRenderer.setOutlinePaint(Color.BLACK);
        meanRenderer.setToolTipGenerator(new CategoryToolTipGenerator() {

            public String generateToolTip(CategoryDataset dataset, int series, int item) {
                HashMap pv = gpds.getPValuesHashMap();
                HashMap std_d = gpds.getStdDevMap();
                String currentPV = (String) pv
                        .get(dataset.getRowKey(series) + "::" + dataset.getColumnKey(item));

                String stdDev = (String) std_d
                        .get(dataset.getRowKey(series) + "::" + dataset.getColumnKey(item));

                return "Probeset : " + dataset.getRowKey(series) + "<br/>Intensity : "
                        + new DecimalFormat("0.0000").format(dataset.getValue(series, item)) + "<br/>"
                        + RembrandtConstants.PVALUE + ": " + currentPV + "<br/>";
                //"<br/>Std. Dev.: " + stdDev + "<br/>";
            }

        });

        meanPlot.setRenderer(meanRenderer);
        // customize the  renderer
        BarRenderer medianRenderer = (BarRenderer) medianPlot.getRenderer();
        medianRenderer.setItemMargin(0.01); // one percent
        medianRenderer.setDrawBarOutline(true);
        medianRenderer.setOutlinePaint(Color.BLACK);
        medianRenderer.setToolTipGenerator(new CategoryToolTipGenerator() {

            public String generateToolTip(CategoryDataset dataset, int series, int item) {
                HashMap pv = gpds.getPValuesHashMap();
                HashMap std_d = gpds.getStdDevMap();
                String currentPV = (String) pv
                        .get(dataset.getRowKey(series) + "::" + dataset.getColumnKey(item));

                String stdDev = (String) std_d
                        .get(dataset.getRowKey(series) + "::" + dataset.getColumnKey(item));

                return "Probeset : " + dataset.getRowKey(series) + "<br/>Intensity : "
                        + new DecimalFormat("0.0000").format(dataset.getValue(series, item)) + "<br/>"
                        + RembrandtConstants.PVALUE + ": " + currentPV + "<br/>";
                //"<br/>Std. Dev.: " + stdDev + "<br/>";
            }

        });

        // LegendTitle lg = chart.getLegend();

        medianPlot.setRenderer(medianRenderer);
        // lets generate a custom legend - assumes theres only one source?
        LegendItemCollection lic = log2Chart.getLegend().getSources()[0].getLegendItems();
        legendHtml = LegendCreator.buildLegend(lic, "Probesets");

        log2Chart.removeLegend();
        meanChart.removeLegend();
        medianChart.removeLegend();

        //bwChart.removeLegend(); // <-- do this above

        // Write the chart image to the temporary directory
        ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());

        // BW
        if (bwChart != null) {
            int bwwidth = new BigDecimal(1.5).multiply(new BigDecimal(imgW)).intValue();
            bwFilename = ServletUtilities.saveChartAsPNG(bwChart, bwwidth, 400, info, session);
            CustomOverlibToolTipTagFragmentGenerator ttip = new CustomOverlibToolTipTagFragmentGenerator();
            String toolTip = " href='javascript:void(0);' alt='GeneChart JFreechart Plot' ";
            ttip.setExtra(toolTip); //must have href for area tags to have cursor:pointer
            ChartUtilities.writeImageMap(pw, bwFilename, info, ttip, new StandardURLTagFragmentGenerator());
            info.clear(); // lose the first one
            info = new ChartRenderingInfo(new StandardEntityCollection());
        }
        //END  BW
        log2Filename = ServletUtilities.saveChartAsPNG(log2Chart, imgW, 400, info, session);
        CustomOverlibToolTipTagFragmentGenerator ttip = new CustomOverlibToolTipTagFragmentGenerator();
        String toolTip = " alt='GeneChart JFreechart Plot' ";
        ttip.setExtra(toolTip); //must have href for area tags to have cursor:pointer
        ChartUtilities.writeImageMap(pw, log2Filename, info, ttip, new StandardURLTagFragmentGenerator());
        // clear the first one and overwrite info with our second one - no
        // error bars
        info.clear(); // lose the first one
        info = new ChartRenderingInfo(new StandardEntityCollection());
        rawFilename = ServletUtilities.saveChartAsPNG(meanChart, imgW, 400, info, session);
        // Write the image map to the PrintWriter
        // can use a different writeImageMap to pass tooltip and URL custom
        ttip = new CustomOverlibToolTipTagFragmentGenerator();
        toolTip = " alt='GeneChart JFreechart Plot' ";
        ttip.setExtra(toolTip); //must have href for area tags to have cursor:pointer
        ChartUtilities.writeImageMap(pw, rawFilename, info, ttip, new StandardURLTagFragmentGenerator());

        info.clear(); // lose the first one
        info = new ChartRenderingInfo(new StandardEntityCollection());
        medianFilename = ServletUtilities.saveChartAsPNG(medianChart, imgW, 400, info, session);

        // Write the image map to the PrintWriter
        // can use a different writeImageMap to pass tooltip and URL custom
        ttip = new CustomOverlibToolTipTagFragmentGenerator();
        toolTip = " alt='GeneChart JFreechart Plot' ";
        ttip.setExtra(toolTip); //must have href for area tags to have cursor:pointer
        ChartUtilities.writeImageMap(pw, medianFilename, info, ttip, new StandardURLTagFragmentGenerator());

        // ChartUtilities.writeImageMap(pw, filename, info, true);

        pw.flush();

    } catch (Exception e) {
        System.out.println("Exception - " + e.toString());
        e.printStackTrace(System.out);
        log2Filename = "public_error_500x300.png";
    }
    // return filename;
    charts.put("errorBars", log2Filename);
    charts.put("noErrorBars", rawFilename);
    charts.put("medianBars", medianFilename);
    charts.put("bwFilename", bwFilename);
    charts.put("legend", legendHtml);
    charts.put("size", ps.toString());

    return charts;
}

From source file:org.jfree.data.statistics.DefaultBoxAndWhiskerCategoryDatasetTest.java

/**
 * Some basic checks for the constructor.
 *///from   w  w  w.  ja v a2  s.  c o m
@Test
public void testConstructor() {
    DefaultBoxAndWhiskerCategoryDataset dataset = new DefaultBoxAndWhiskerCategoryDataset();
    assertEquals(0, dataset.getColumnCount());
    assertEquals(0, dataset.getRowCount());
    assertTrue(Double.isNaN(dataset.getRangeLowerBound(false)));
    assertTrue(Double.isNaN(dataset.getRangeUpperBound(false)));
}

From source file:adapters.BoxSeriesCollectionAdapter.java

/**
 * Returns the range (<SPAN CLASS="MATH"><I>y</I></SPAN>-coordinates) min and max values.
 *
 * @return range min and max values.//from www  .  ja  v  a 2  s  . c  o  m
 *
 */
public double[] getRangeBounds() {
    double max = 0, min = 0;
    DefaultBoxAndWhiskerCategoryDataset tempSeriesCollection = (DefaultBoxAndWhiskerCategoryDataset) seriesCollection;

    if (tempSeriesCollection.getColumnCount() != 0 && tempSeriesCollection.getRowCount() != 0) {
        max = tempSeriesCollection.getItem(0, 0).getMaxOutlier().doubleValue();
        min = tempSeriesCollection.getItem(0, 0).getMinOutlier().doubleValue();
    }

    for (int i = 0; i < tempSeriesCollection.getRowCount(); i++) {
        for (int j = 0; j < tempSeriesCollection.getColumnCount(); j++) {
            max = Math.max(max, tempSeriesCollection.getItem(i, j).getMaxOutlier().doubleValue());
            min = Math.min(min, tempSeriesCollection.getItem(i, j).getMinOutlier().doubleValue());
        }
    }

    double[] retour = { min, max };
    return retour;
}

From source file:edu.gmu.cs.sim.util.media.chart.BoxPlotGenerator.java

public int getSeriesCount() {
    DefaultBoxAndWhiskerCategoryDataset dataset = (DefaultBoxAndWhiskerCategoryDataset) (getSeriesDataset());
    return dataset.getRowCount();
}