Example usage for org.jfree.chart.plot CategoryPlot getRenderer

List of usage examples for org.jfree.chart.plot CategoryPlot getRenderer

Introduction

In this page you can find the example usage for org.jfree.chart.plot CategoryPlot getRenderer.

Prototype

public CategoryItemRenderer getRenderer() 

Source Link

Document

Returns a reference to the renderer for the plot.

Usage

From source file:mzmatch.ipeak.normalisation.VanDeSompele.java

public static void main(String args[]) {
    try {/*from   w w  w .  j  a  v a2  s  .  c  o  m*/
        Tool.init();

        // parse the commandline options
        Options options = new Options();
        CmdLineParser cmdline = new CmdLineParser(options);

        // check whether we need to show the help
        cmdline.parse(args);
        if (options.help) {
            Tool.printHeader(System.out, application, version);
            cmdline.printUsage(System.out, "");
            return;
        }

        if (options.verbose) {
            Tool.printHeader(System.out, application, version);
            cmdline.printOptions();
        }

        // check the command-line parameters
        {
            // if the output directories do not exist, create them
            if (options.output != null)
                Tool.createFilePath(options.output, true);
        }

        // load the data
        if (options.verbose)
            System.out.println("Loading data");
        ParseResult result = PeakMLParser.parse(new FileInputStream(options.input), true);

        Header header = result.header;
        IPeakSet<IPeakSet<? extends IPeak>> peaksets = (IPeakSet<IPeakSet<? extends IPeak>>) result.measurement;

        int nrmeasurements = header.getNrMeasurementInfos();

        // remove the stability factor annotation
        for (IPeak peak : peaksets)
            peak.removeAnnotation("stability factor");

        // load the database
        if (options.verbose)
            System.out.println("Loading the molecule database");
        HashMap<String, Molecule> database = MoleculeIO.parseXml(new FileInputStream(options.database));

        // filter the set to include only identifiable metabolites
        if (options.verbose)
            System.out.println("Creating selection");
        Vector<IPeakSet<? extends IPeak>> selection = new Vector<IPeakSet<? extends IPeak>>();
        for (Molecule molecule : database.values()) {
            double mass = molecule.getMass(Mass.MONOISOTOPIC);
            double delta = PeriodicTable.PPM(mass, options.ppm);

            // get the most intense peak containing all the measurements
            Vector<IPeakSet<? extends IPeak>> neighbourhoud = peaksets.getPeaksInMassRange(mass - delta,
                    mass + delta);
            Collections.sort(neighbourhoud, IPeak.sort_intensity_descending);
            for (IPeakSet<? extends IPeak> neighbour : neighbourhoud)
                if (count(neighbour) == nrmeasurements) {
                    selection.add(neighbour);
                    break;
                }
        }

        // calculate the stability factor for each peak in the selection
        if (options.verbose)
            System.out.println("Calculating stability factors");
        for (int peakid1 = 0; peakid1 < selection.size(); ++peakid1) {
            double stddeviations[] = new double[selection.size()];

            IPeakSet<? extends IPeak> peakset1 = selection.get(peakid1);
            for (int peakid2 = 0; peakid2 < selection.size(); ++peakid2) {
                IPeakSet<? extends IPeak> peakset2 = selection.get(peakid2);

                double values[] = new double[nrmeasurements];
                for (int measurementid = 0; measurementid < nrmeasurements; ++measurementid) {
                    int measurementid1 = peakset1.get(measurementid).getMeasurementID();
                    int setid1 = header.indexOfSetInfo(header.getSetInfoForMeasurementID(measurementid1));
                    int measurementid2 = peakset2.get(measurementid).getMeasurementID();
                    int setid2 = header.indexOfSetInfo(header.getSetInfoForMeasurementID(measurementid2));
                    if (setid1 != setid2 || measurementid1 != measurementid2)
                        System.err.println("[WARNING]: differing setid or spectrumid for comparison");

                    values[measurementid] = Math.log(peakset1.get(measurementid).getIntensity()
                            / peakset2.get(measurementid).getIntensity()) / Math.log(2);
                }
                stddeviations[peakid2] = Statistical.stddev(values);
            }

            peakset1.addAnnotation("stability factor", Statistical.mean(stddeviations));
        }

        // sort on the stability factor
        Collections.sort(selection, new IPeak.AnnotationAscending("stability factor"));

        // take the top 10% and calculate the geometric mean
        if (options.verbose)
            System.out.println("Calculating normalisation factors");
        int nrselected = (int) (0.1 * selection.size());
        if (nrselected < 10)
            nrselected = (10 < selection.size() ? 10 : selection.size());
        double normalization_factors[] = new double[nrmeasurements];
        for (int measurementid = 0; measurementid < nrmeasurements; ++measurementid) {
            double values[] = new double[nrselected];
            for (int i = 0; i < nrselected; ++i) {
                IPeak peak = selection.get(i).get(measurementid);
                values[i] = peak.getIntensity();
            }
            normalization_factors[measurementid] = Statistical.geomean(values);
        }

        // scale the found normalization factors
        double maxnf = Statistical.max(normalization_factors);
        for (int sampleid = 0; sampleid < nrmeasurements; ++sampleid)
            normalization_factors[sampleid] /= maxnf;

        // write the selection if needed
        if (options.selection != null) {
            if (options.verbose)
                System.out.println("Writing original selection data");

            PeakMLWriter.write(result.header, selection, null,
                    new GZIPOutputStream(new FileOutputStream(options.selection)), null);
        }

        // normalize all the peaks
        if (options.verbose)
            System.out.println("Normalizing all the entries");
        for (IPeakSet<? extends IPeak> peakset : peaksets) {
            for (int measurementid = 0; measurementid < nrmeasurements; ++measurementid) {
                // TODO why did I do this again ?
                int id = 0;
                int setid = 0;
                int spectrumid = 0;
                for (int i = 0; i < header.getNrSetInfos(); ++i) {
                    SetInfo set = header.getSetInfos().get(i);

                    if (id + set.getNrMeasurementIDs() > measurementid) {
                        setid = i;
                        spectrumid = measurementid - id;
                        break;
                    } else
                        id += set.getNrMeasurementIDs();
                }

                MassChromatogram<Peak> masschromatogram = null;
                for (IPeak p : peakset) {
                    int mymeasurementid = p.getMeasurementID();
                    int mysetid = header.indexOfSetInfo(header.getSetInfoForMeasurementID(mymeasurementid));
                    if (mysetid == setid && mymeasurementid == spectrumid) {
                        masschromatogram = (MassChromatogram<Peak>) p;
                        break;
                    }
                }
                if (masschromatogram == null)
                    continue;

                for (IPeak peak : masschromatogram.getPeaks())
                    peak.setIntensity(peak.getIntensity() / normalization_factors[measurementid]);
            }
        }

        // write the selection if needed
        if (options.selection_normalized != null) {
            if (options.verbose)
                System.out.println("Writing the normalized selection data");

            PeakMLWriter.write(result.header, selection, null,
                    new GZIPOutputStream(new FileOutputStream(options.selection_normalized)), null);
        }

        // write the factors if needed
        if (options.factors != null) {
            if (options.verbose)
                System.out.println("Writing the normalization factors");

            PrintStream out = new PrintStream(options.factors);
            for (int measurementid = 0; measurementid < nrmeasurements; ++measurementid)
                out.println(header.getMeasurementInfo(measurementid).getLabel() + "\t"
                        + normalization_factors[measurementid]);
        }

        // write the plot if needed
        if (options.img != null) {
            if (options.verbose)
                System.out.println("Writing the graph");

            DefaultCategoryDataset dataset = new DefaultCategoryDataset();
            JFreeChart linechart = ChartFactory.createLineChart(null, "measurement", "normalization factor",
                    dataset, PlotOrientation.VERTICAL, false, // legend
                    false, // tooltips
                    false // urls
            );

            CategoryPlot plot = (CategoryPlot) linechart.getPlot();
            CategoryAxis axis = (CategoryAxis) plot.getDomainAxis();
            axis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
            LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();

            renderer.setSeriesShapesFilled(0, true);
            renderer.setSeriesShapesVisible(0, true);

            linechart.setBackgroundPaint(Color.WHITE);
            linechart.setBorderVisible(false);
            linechart.setAntiAlias(true);

            plot.setBackgroundPaint(Color.WHITE);
            plot.setDomainGridlinesVisible(true);
            plot.setRangeGridlinesVisible(true);

            // create the datasets
            for (int measurementid = 0; measurementid < nrmeasurements; ++measurementid)
                dataset.addValue(normalization_factors[measurementid], "",
                        header.getMeasurementInfo(measurementid).getLabel());
            JFreeChartTools.writeAsPDF(new FileOutputStream(options.img), linechart, 800, 500);
        }

        // write the normalized values
        if (options.verbose)
            System.out.println("Writing the normalized data");
        PeakMLWriter.write(result.header, peaksets.getPeaks(), null,
                new GZIPOutputStream(new FileOutputStream(options.output)), null);
    } catch (Exception e) {
        Tool.unexpectedError(e, application);
    }
}

From source file:org.jfree.chart.demo.GradientPaintTransformerDemo1.java

public static JPanel createDemoPanel() {
    JPanel jpanel = new JPanel(new GridLayout(2, 2));
    jpanel.setPreferredSize(new Dimension(800, 600));
    CategoryDataset categorydataset = createDataset();
    JFreeChart jfreechart = createChart("Type: VERTICAL", categorydataset);
    CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot();
    BarRenderer barrenderer = (BarRenderer) categoryplot.getRenderer();
    barrenderer.setDrawBarOutline(false);
    barrenderer.setSeriesPaint(0, new GradientPaint(0.0F, 0.0F, Color.red, 0.0F, 0.0F, Color.yellow));
    barrenderer.setSeriesPaint(1, new GradientPaint(0.0F, 0.0F, Color.blue, 0.0F, 0.0F, Color.green));
    barrenderer.setGradientPaintTransformer(
            new StandardGradientPaintTransformer(GradientPaintTransformType.VERTICAL));
    ChartPanel chartpanel = new ChartPanel(jfreechart);
    jpanel.add(chartpanel);// w w w .j av  a 2  s . com
    JFreeChart jfreechart1 = createChart("Type: HORIZONTAL", categorydataset);
    CategoryPlot categoryplot1 = (CategoryPlot) jfreechart1.getPlot();
    BarRenderer barrenderer1 = (BarRenderer) categoryplot1.getRenderer();
    barrenderer1.setDrawBarOutline(false);
    barrenderer1.setSeriesPaint(0, new GradientPaint(0.0F, 0.0F, Color.red, 0.0F, 0.0F, Color.yellow));
    barrenderer1.setSeriesPaint(1, new GradientPaint(0.0F, 0.0F, Color.blue, 0.0F, 0.0F, Color.green));
    barrenderer1.setGradientPaintTransformer(
            new StandardGradientPaintTransformer(GradientPaintTransformType.HORIZONTAL));
    ChartPanel chartpanel1 = new ChartPanel(jfreechart1);
    jpanel.add(chartpanel1);
    JFreeChart jfreechart2 = createChart("Type: CENTER_VERTICAL", categorydataset);
    CategoryPlot categoryplot2 = (CategoryPlot) jfreechart2.getPlot();
    BarRenderer barrenderer2 = (BarRenderer) categoryplot2.getRenderer();
    barrenderer2.setDrawBarOutline(false);
    barrenderer2.setSeriesPaint(0, new GradientPaint(0.0F, 0.0F, Color.red, 0.0F, 0.0F, Color.yellow));
    barrenderer2.setSeriesPaint(1, new GradientPaint(0.0F, 0.0F, Color.blue, 0.0F, 0.0F, Color.green));
    barrenderer2.setGradientPaintTransformer(
            new StandardGradientPaintTransformer(GradientPaintTransformType.CENTER_VERTICAL));
    ChartPanel chartpanel2 = new ChartPanel(jfreechart2);
    jpanel.add(chartpanel2);
    JFreeChart jfreechart3 = createChart("Type: CENTER_HORIZONTAL", categorydataset);
    CategoryPlot categoryplot3 = (CategoryPlot) jfreechart3.getPlot();
    BarRenderer barrenderer3 = (BarRenderer) categoryplot3.getRenderer();
    barrenderer3.setDrawBarOutline(false);
    barrenderer3.setSeriesPaint(0, new GradientPaint(0.0F, 0.0F, Color.red, 0.0F, 0.0F, Color.yellow));
    barrenderer3.setSeriesPaint(1, new GradientPaint(0.0F, 0.0F, Color.blue, 0.0F, 0.0F, Color.green));
    barrenderer3.setGradientPaintTransformer(
            new StandardGradientPaintTransformer(GradientPaintTransformType.CENTER_HORIZONTAL));
    ChartPanel chartpanel3 = new ChartPanel(jfreechart3);
    jpanel.add(chartpanel3);
    return jpanel;
}

From source file:org.jfree.chart.demo.MouseOverDemo1.java

public static JPanel createDemoPanel() {
    JFreeChart jfreechart = createChart(createDataset());
    CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot();
    MyBarRenderer mybarrenderer = (MyBarRenderer) categoryplot.getRenderer();
    MyDemoPanel mydemopanel = new MyDemoPanel(mybarrenderer);
    ChartPanel chartpanel = new ChartPanel(jfreechart);
    mydemopanel.addChart(jfreechart);//from w  w  w  . j a  v  a  2  s. c om
    chartpanel.addChartMouseListener(mydemopanel);
    mydemopanel.add(chartpanel);
    return mydemopanel;
}

From source file:net.imglib2.script.analysis.BarChart.java

static private final void setBarTheme(final JFreeChart chart) {
    CategoryPlot plot = (CategoryPlot) chart.getPlot();
    BarRenderer renderer = (BarRenderer) plot.getRenderer();
    renderer.setSeriesOutlinePaint(0, Color.lightGray);
    renderer.setShadowVisible(false);/*from w  ww.  j  a v  a  2 s. co  m*/
    renderer.setDrawBarOutline(true);
    setBackgroundDefault(chart);
}

From source file:org.jfree.chart.demo.StackedBarChartDemo6.java

private static JFreeChart createChart(CategoryDataset categorydataset) {
    JFreeChart jfreechart = ChartFactory.createStackedBarChart("Stacked Bar Chart Demo 6", "Category", "Value",
            categorydataset, PlotOrientation.HORIZONTAL, true, true, false);
    jfreechart.setBackgroundPaint(Color.white);
    CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot();
    categoryplot.setBackgroundPaint(Color.lightGray);
    categoryplot.setRangeGridlinePaint(Color.white);
    StackedBarRenderer stackedbarrenderer = (StackedBarRenderer) categoryplot.getRenderer();
    stackedbarrenderer.setDrawBarOutline(false);
    long l = System.currentTimeMillis();
    stackedbarrenderer.setBase(l);// w w w  .j  a v  a 2  s. c  o  m
    DateAxis dateaxis = new DateAxis("Date");
    dateaxis.setLowerMargin(0.0D);
    categoryplot.setRangeAxis(dateaxis);
    return jfreechart;
}

From source file:com.compomics.pepshell.view.statistics.JFreeChartPanel.java

/**
 * Enable shadow of renderer? JFreeChart 1.0.11 changed the <b>default</b>
 * look by painting shadows for bars. To revert back to the old look, you
 * can disable the shadows with this method.
 *
 * @param chart JFreeChart.//from  w  ww.ja  va2s  .com
 * @param state False, to disable shadow-
 * @since 4.1.0
 */
private static void setShadowVisible(final JFreeChart chart, final boolean state) {
    if (chart != null) {
        final Plot p = chart.getPlot();
        if (p instanceof XYPlot) {
            final XYPlot xyplot = (XYPlot) p;
            final XYItemRenderer xyItemRenderer = xyplot.getRenderer();
            if (xyItemRenderer instanceof XYBarRenderer) {
                final XYBarRenderer br = (XYBarRenderer) xyItemRenderer;
                br.setBarPainter(new StandardXYBarPainter());
                br.setShadowVisible(state);
            }
        } else if (p instanceof CategoryPlot) {
            final CategoryPlot categoryPlot = (CategoryPlot) p;
            final CategoryItemRenderer categoryItemRenderer = categoryPlot.getRenderer();
            if (categoryItemRenderer instanceof BarRenderer) {
                final BarRenderer br = (BarRenderer) categoryItemRenderer;
                br.setBarPainter(new StandardBarPainter());
                br.setShadowVisible(state);
            }
        }
    }
}

From source file:graficos.GraficoGantt.java

private static JFreeChart crearGrafico(IntervalCategoryDataset cjto_datos) {
    JFreeChart grafico = ChartFactory.createGanttChart("Diagrama de Gantt", // Ttulo
            "Actividad", // Ttulo eje x
            "Fecha", // Ttulo eje y
            cjto_datos, // Datos
            true, // Incluir leyenda
            true, // Incluir tooltips
            false // Incluir URLs
    );/*  w  w  w .  jav a  2 s .  c o m*/
    grafico.setBackgroundPaint(new Color(240, 240, 240));
    grafico.getPlot().zoom(0.0);
    CategoryPlot categoriaPlot = (CategoryPlot) grafico.getPlot();
    GanttRenderer renderer = (GanttRenderer) categoriaPlot.getRenderer();
    renderer.setDrawBarOutline(true);
    // GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, new Color(102, 255, 102), 0.0f, 0.0f, new Color(102, 255, 102));
    renderer.setSeriesPaint(0, new Color(48, 239, 48));
    renderer.setSeriesPaint(1, Color.RED);
    grafico.getPlot().setOutlineVisible(true);
    return grafico;
}

From source file:com.pasi.pdfbox.Main.java

private static JFreeChart createBarChart() {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    dataset.addValue(7445, "JFreeSVG", "Warm-up");
    dataset.addValue(24448, "Batik", "Warm-up");
    dataset.addValue(4297, "JFreeSVG", "Test");
    dataset.addValue(21022, "Batik", "Test");

    JFreeChart chart = ChartFactory.createBarChart("Performance: JFreeSVG vs Batik", null /* x-axis label*/,
            "Milliseconds" /* y-axis label */, dataset);
    chart.addSubtitle(//from  w  ww . j ava 2 s .co  m
            new TextTitle("Time to generate 1000 charts in SVG " + "format (lower bars = better performance)"));
    chart.setBackgroundPaint(Color.white);
    CategoryPlot plot = (CategoryPlot) chart.getPlot();

    NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    BarRenderer renderer = (BarRenderer) plot.getRenderer();
    renderer.setDrawBarOutline(false);
    chart.getLegend().setFrame(BlockBorder.NONE);
    return chart;
}

From source file:org.gaixie.micrite.jfreechart.style.BarStyle.java

/**
 * ???/*  w  w w.  java  2  s .c om*/
 * @param chart JFreeChart
 */
public static void styleOne(JFreeChart chart) {
    CategoryPlot categoryplot = (CategoryPlot) chart.getPlot();
    CategoryDataset dca = categoryplot.getDataset();
    //?
    chart.setBackgroundPaint(null);
    if (dca != null) {
        BarRenderer categoryitemrenderer = (BarRenderer) categoryplot.getRenderer();
        // ?
        categoryitemrenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
        //            categoryitemrenderer.setBaseItemLabelFont(
        //                    new Font("", Font.PLAIN, 15));
        categoryitemrenderer.setBaseItemLabelsVisible(true);
        //tooltip
        categoryplot.getRenderer()
                .setBaseToolTipGenerator(new StandardCategoryToolTipGenerator("{0}={2}", new DecimalFormat()));
        //?
        for (int i = 0; i < dca.getRowCount(); i++) {
            int colorIdx = i % colors.length;
            categoryitemrenderer.setSeriesPaint(i, colors[colorIdx]);
        }
    } else {
        //?
        categoryplot.setNoDataMessage("NO DATA");
    }
}

From source file:org.jfree.chart.demo.AxisOffsetsDemo1.java

private static JFreeChart createChart(String s, CategoryDataset categorydataset) {
    JFreeChart jfreechart = ChartFactory.createBarChart(s, "Category", "Value", categorydataset,
            PlotOrientation.VERTICAL, false, true, false);
    CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot();
    categoryplot.setDomainGridlinesVisible(true);
    NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();
    numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    BarRenderer barrenderer = (BarRenderer) categoryplot.getRenderer();
    barrenderer.setDrawBarOutline(false);
    GradientPaint gradientpaint = new GradientPaint(0.0F, 0.0F, Color.blue, 0.0F, 0.0F, new Color(0, 0, 64));
    GradientPaint gradientpaint1 = new GradientPaint(0.0F, 0.0F, Color.green, 0.0F, 0.0F, new Color(0, 64, 0));
    GradientPaint gradientpaint2 = new GradientPaint(0.0F, 0.0F, Color.red, 0.0F, 0.0F, new Color(64, 0, 0));
    barrenderer.setSeriesPaint(0, gradientpaint);
    barrenderer.setSeriesPaint(1, gradientpaint1);
    barrenderer.setSeriesPaint(2, gradientpaint2);
    return jfreechart;
}