Example usage for org.jfree.chart.renderer.xy XYLineAndShapeRenderer setSeriesShapesFilled

List of usage examples for org.jfree.chart.renderer.xy XYLineAndShapeRenderer setSeriesShapesFilled

Introduction

In this page you can find the example usage for org.jfree.chart.renderer.xy XYLineAndShapeRenderer setSeriesShapesFilled.

Prototype

public void setSeriesShapesFilled(int series, Boolean flag) 

Source Link

Document

Sets the 'shapes filled' flag for a series and sends a RendererChangeEvent to all registered listeners.

Usage

From source file:jmeanshift.ChartProof.java

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed

    dataset.removeAllSeries();/*from   w  ww.j a va  2  s .  c o  m*/
    Vector<Vector> vdataset = new Vector<Vector>();
    vdataset.add(data1);
    vdataset.add(data2);
    // dataset.add(data3);
    //dataset.add(data4);
    System.out.print("[");
    for (int k = 0; k < data1.size(); k++) {
        System.out.print(" " + data1.get(k));
    }
    System.out.print(" ]");
    System.out.print("\n");
    System.out.print("[");
    for (int k = 0; k < data1.size(); k++) {
        System.out.print(" " + data2.get(k));
    }
    System.out.print(" ]");
    System.out.print("\n");
    MeanShift domean = new MeanShift();
    double criteria = Double.parseDouble(jTextField1.getText().trim());
    double band = Double.parseDouble(jTextField2.getText().trim());
    domean.setMergeClusters(jcbMergeClusters.isSelected());
    domean.doMeanShift(vdataset, band, criteria, jcbRandomMode.isSelected());

    XYSeries[] clusters = new XYSeries[domean.getkClusters()];
    XYSeries[] clustersCenter = new XYSeries[domean.getkClusters()];

    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();

    //varre o numero de cluster
    for (int y = 0; y < domean.getkClusters(); y++) {

        clustersCenter[y] = new XYSeries("center " + y);
        dataset.addSeries(clustersCenter[y]);

        clusters[y] = new XYSeries("cluster " + y);
        dataset.addSeries(clusters[y]);

        double[] cc = domean.clusterCenter.get(y);
        clustersCenter[y].add(cc[0], cc[1]);
        renderer.setSeriesLinesVisible(dataset.getSeriesCount() - 2, Boolean.FALSE);
        renderer.setSeriesLinesVisible(dataset.getSeriesCount() - 1, Boolean.FALSE);
        renderer.setSeriesShape(dataset.getSeriesCount() - 2, new Rectangle2D.Double(-3.0, -3.0, 6.0, 6.0));
        renderer.setSeriesShape(dataset.getSeriesCount() - 1, new Ellipse2D.Double(-2.0, -2.0, 3.0, 3.0));
        renderer.setSeriesShapesFilled(dataset.getSeriesCount() - 2, Boolean.TRUE);
        renderer.setSeriesShapesFilled(dataset.getSeriesCount() - 1, Boolean.TRUE);

        for (int k = 0; k < domean.clustersMembers.size(); k++) {
            if (y == domean.clustersMembers.get(k)) {
                clusters[y].add(data1.get(k), data2.get(k));
                //System.out.println("y: " + y + " x1: " +series.getX(k)+ " x2: "+series.getY(k));
            }
        }

    }
    plot.setRenderer(renderer);

}

From source file:org.esa.beam.visat.toolviews.stat.StatisticsPanel.java

private static ChartPanel getScatterPlotPanel(XIntervalSeriesCollection dataset, String xAxisLabel,
        String yAxisLabel, Color color, double domainBounds[], double rangeBounds[]) {
    //  JFreeChart chart = ChartFactory.createScatterPlot(
    JFreeChart chart = ChartFactory.createXYLineChart(null, xAxisLabel, yAxisLabel, dataset,
            PlotOrientation.VERTICAL, false, // Legend?
            true, // tooltips
            false // url
    );//w  w w  . j av a2 s.c om
    final XYPlot xyPlot = chart.getXYPlot();
    //   xyPlot.setForegroundAlpha(0.85f);
    xyPlot.setBackgroundAlpha(0.0f);
    xyPlot.setNoDataMessage("No data");
    xyPlot.setAxisOffset(new RectangleInsets(5, 5, 5, 10));

    // todo Danny set bounds here

    //        if (domainBounds[0] != domainBounds[1]) {
    //            xyPlot.getDomainAxis().setLowerBound(domainBounds[0]);
    //            xyPlot.getDomainAxis().setUpperBound(domainBounds[1]);
    //        }
    //
    //        if (rangeBounds[0] != rangeBounds[1]) {
    //            xyPlot.getRangeAxis().setLowerBound(rangeBounds[0]);
    //            xyPlot.getRangeAxis().setUpperBound(rangeBounds[1]);
    //        }

    if (!Double.isNaN(domainBounds[0])) {
        xyPlot.getDomainAxis().setLowerBound(domainBounds[0]);
    }

    if (!Double.isNaN(domainBounds[1])) {
        xyPlot.getDomainAxis().setUpperBound(domainBounds[1]);
    }

    if (!Double.isNaN(rangeBounds[0])) {
        xyPlot.getRangeAxis().setLowerBound(rangeBounds[0]);
    }

    if (!Double.isNaN(rangeBounds[1])) {
        xyPlot.getRangeAxis().setUpperBound(rangeBounds[1]);
    }

    final XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) xyPlot.getRenderer();
    renderer.setSeriesPaint(0, color);
    renderer.setUseFillPaint(true);
    renderer.setDrawOutlines(true);
    renderer.setSeriesShapesFilled(0, true);
    renderer.setSeriesFillPaint(0, color);

    ChartPanel chartPanel = new ChartPanel(chart);
    //    chartPanel.setPreferredSize(new Dimension(300, 200));

    return chartPanel;
}

From source file:edu.umn.ecology.populus.plot.BasicPlotInfo.java

public ChartTheme getJFreeChartTheme() {
    class PopChartTheme implements ChartTheme {
        private BasicPlotInfo bpiRef;

        public PopChartTheme(BasicPlotInfo bpi) {
            this.bpiRef = bpi;
        }// www . j  a v a2s. c o m

        public void apply(JFreeChart chart) {
            JFCXYAdapter jfca = new JFCXYAdapter();
            XYPlot plot = chart.getXYPlot();
            plot.setDataset(jfca);

            if (isLogPlot) {
                plot.setRangeAxis(new LogarithmicAxis(""));
            }
            if (isFrequencies) {
                ValueAxis va = plot.getRangeAxis();
                if (va instanceof NumberAxis) {
                    NumberAxis na = (NumberAxis) va;
                    na.setTickUnit(new NumberTickUnit(0.1));
                } else {
                    Logging.log("Range Axis is not NumberAxis, why?", Logging.kWarn);
                }
            }

            if (xMinSet)
                plot.getDomainAxis().setLowerBound(xAxisMin);
            if (xMaxSet)
                plot.getDomainAxis().setUpperBound(xAxisMax);
            if (yMinSet)
                plot.getRangeAxis().setLowerBound(yAxisMin);
            if (yMaxSet)
                plot.getRangeAxis().setUpperBound(yAxisMax);

            //TODO - just use this renderer
            plot.setRenderer(new ChartRendererWithOrientatedShapes(bpiRef));

            XYItemRenderer r = plot.getRenderer();
            //         AbstractXYItemRenderer r = plot.getRenderer();
            if (r instanceof XYLineAndShapeRenderer) {
                XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;
                for (int i = 0; i < getNumSeries(); i++) {
                    //Set Line
                    renderer.setSeriesPaint(i, getLineColor(i));
                    renderer.setSeriesStroke(i, getLineStroke(i));

                    //Set Symbol
                    renderer.setSeriesFillPaint(i, getSymbolColor(i));
                    renderer.setSeriesOutlinePaint(i, getSymbolColor(i));

                    Shape shape = getSymbolShape(i);
                    if (shape != null) {
                        renderer.setSeriesShape(i, shape);
                        renderer.setSeriesShapesFilled(i, isSymbolOpaque(i));
                        renderer.setUseFillPaint(true);
                        renderer.setUseOutlinePaint(true);
                        renderer.setSeriesShapesVisible(i, true);
                    }
                }
            } else if (r instanceof XYBarRenderer) {
                XYBarRenderer barRenderer = (XYBarRenderer) r;
                barRenderer.setBarPainter(new StandardXYBarPainter());
            } else {
                Logging.log("Unknown renderer type: " + r.getClass(), Logging.kWarn);
            }

            //inner labels, used in AIDS: Therapy
            plot.clearAnnotations();
            Enumeration<InnerLabel> e = innerLabels.elements();
            while (e.hasMoreElements()) {
                InnerLabel lab = (InnerLabel) e.nextElement();
                Logging.log("Adding " + lab.caption + " at " + lab.x + ", " + lab.y);

                XYTextAnnotation annotation = new XYTextAnnotation(lab.caption, lab.x, lab.y);
                annotation.setTextAnchor(TextAnchor.BOTTOM_CENTER);
                annotation.setOutlineVisible(true);
                plot.addAnnotation(annotation);

                //I actually think the annotation above is ugly.  We can use one of these instead in the future, maybe...
                /*PointerAnnotation may look cool...
                 * That 2.0 is the angle, randomly picked
                 * XYPointerAnnotation annotation = new XYPointerAnnotation(lab.caption, lab.x, lab.y, 2.0); 
                 */

                /*
                ValueMarker marker = new ValueMarker(lab.x);
                marker.setLabel(lab.caption);
                marker.setLabelAnchor(RectangleAnchor.BOTTOM_LEFT);
                plot.addDomainMarker(marker);
                 */

            }

            //This is set for GD: AMCM
            if (startGridded) {
                plot.setDomainGridlinesVisible(true);
                plot.setDomainGridlinePaint(Color.BLACK);
                plot.setRangeGridlinesVisible(true);
                plot.setRangeGridlinePaint(Color.BLACK);
            }

        }
    }
    return new PopChartTheme(this);
}

From source file:edu.ucla.stat.SOCR.chart.demo.SOCR_EM_MixtureModelChartDemo.java

/**
 * Creates a chart.//w w  w.j  ava 2 s.c  om
 * 
 * @param dataset  the data for the chart.
 * 
 * @return a chart.
 */
// protected JFreeChart createChart(XYDataset dataset, double[][] polygons, int num_poly) {

protected JFreeChart createChart(XYDataset[] dataset) {
    //System.out.println("createChart get called");
    boolean legend = false;
    /*if (num_series>1&&segment_flag==false)
       legend = true;*/

    //   System.out.println("createchart: inde="+independentVarLength);
    // create the chart...
    JFreeChart chart = ChartFactory.createXYLineChart(chartTitle, // chart title
            "X", // x axis label
            "Y", // y axis label
            dataset[0], // data
            PlotOrientation.VERTICAL, legend, // include legend
            true, // tooltips
            false // urls
    );

    //printDataset(dataset, num_series);

    // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
    chart.setBackgroundPaint(Color.white);

    // get a reference to the plot for further customisation...
    XYPlot subplot1 = (XYPlot) chart.getPlot();
    subplot1.setBackgroundPaint(Color.lightGray);
    subplot1.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
    subplot1.setDomainGridlinePaint(Color.white);
    subplot1.setRangeGridlinePaint(Color.white);

    XYLineAndShapeRenderer renderer1 = (XYLineAndShapeRenderer) subplot1.getRenderer();

    renderer1.setBaseLinesVisible(false);
    renderer1.setBaseShapesVisible(true);
    renderer1.setBaseShapesFilled(true);

    int[] num_group = new int[num_series];
    Paint color_mainGroup = mEMexperiment[0].getColorOfMainGroup();

    // use same color   for all series if EM together    
    //  System.out.println("dataset0. seriescount="+dataset[0].getSeriesCount()+" itemcount="+dataset[0].getItemCount(0));
    if (num_series == 1)
        for (int s = 0; s < dataset[0].getSeriesCount(); s++) {
            renderer1.setSeriesLinesVisible(s, false);
            renderer1.setSeriesShapesVisible(s, true);
            renderer1.setSeriesShapesFilled(s, true);
            renderer1.setSeriesShape(s, series_shapes[0]); // for the shape of the dots
            renderer1.setSeriesPaint(s, color_mainGroup);
        }

    //  System.out.println("num_series="+num_series);
    //   System.out.println("num_group="+num_group);
    //  System.out.println("segment_flag="+segment_flag);

    if (legend) {
        LegendItemCollection legends_old = subplot1.getFixedLegendItems();
        LegendItemCollection legends_new = new LegendItemCollection();
        for (int s = 0; s < num_series; s++) {
            legends_new.add(legends_old.get(s));
        }
        subplot1.setFixedLegendItems(legends_new);

    }
    //segment

    for (int s = 0; s < num_series; s++) {
        num_group[s] = mEMexperiment[s].getNumOfGroup();
    }

    // System.out.println("num_group[0]="+num_group[0]);

    if (num_group[0] > 0 && segment_flag && (mixSelected == CG_MIX)) {
        Paint[] color_groups = mEMexperiment[0].getColorOfGroups();

        for (int i = 0; i < num_group[0] - 1; i++) {
            //System.out.println("color "+ i +"=" + color_groups[i].toString());
            renderer1.setSeriesPaint(i, color_groups[i]);
        }
        //System.out.println("color main ="+ color_mainGroup.toString());
        renderer1.setSeriesPaint(nkSelected, color_mainGroup);
    } else
        renderer1.setBasePaint(color_mainGroup);

    // renderer1.setShape(series_shapes[0]);   

    // subplot1.setDataset(0, dataset[0]);
    //System.out.println("setting renderer for " +0);
    //   subplot1.setRenderer(0, renderer1);
    // System.out.println("SOCR_EM creatChart: pt0="+dataset.getXValue(0, 0)+ ","+dataset.getYValue(0, 0));

    // change the auto tick unit selection to integer units only...
    NumberAxis rangeAxis = (NumberAxis) subplot1.getRangeAxis();
    rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    rangeAxis.setAutoRangeIncludesZero(true);
    //   rangeAxis.setUpperMargin(0);
    //  rangeAxis.setLowerMargin(0);

    NumberAxis domainAxis = (NumberAxis) subplot1.getDomainAxis();
    domainAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    domainAxis.setAutoRangeIncludesZero(true);
    //  domainAxis.setUpperMargin(0);
    //  domainAxis.setLowerMargin(0);

    XYLineAndShapeRenderer[] renderer1a = new XYLineAndShapeRenderer[num_series];
    if (num_series > 1) {
        for (int s = 0; s < num_series; s++) {
            //   System.out.println("adding pt for series:"+s +": seriesCount "+ dataset[s].getSeriesCount()+"itemcount="+dataset[s].getItemCount(0));
            renderer1a[s] = new XYLineAndShapeRenderer();
            if (num_group[0] > 0 && segment_flag && (mixSelected == CG_MIX)) {
                Paint[] color_groups = mEMexperiment[0].getColorOfGroups();

                for (int i = 0; i < num_group[0] - 1; i++) {
                    //System.out.println("color "+ i +"=" + color_groups[i].toString());
                    renderer1a[s].setSeriesPaint(i, color_groups[i]);
                }
                //System.out.println("color main ="+ color_mainGroup.toString());
                renderer1a[s].setSeriesPaint(nkSelected, color_mainGroup);
            } else
                renderer1a[s].setBasePaint(color_mainGroup);
            renderer1a[s].setBaseLinesVisible(false);
            renderer1a[s].setBaseShapesVisible(true);
            renderer1a[s].setBaseShapesFilled(true);
            renderer1a[s].setBaseShape(series_shapes[s]); // different shape of dots for each pair of input    
            subplot1.setDataset(s, dataset[s]);
            // System.out.println("setting renderer for " +s);
            subplot1.setRenderer(s, renderer1a[s]);
        }

    }

    if (kernels != null) {
        /*  System.out.println("draw kernels");
          System.out.println("num_series="+num_series);
          System.out.println("nkSelected="+nkSelected);*/
        XYLineAndShapeRenderer[][] renderer2 = new XYLineAndShapeRenderer[num_series][nkSelected];
        for (int s = 0; s < num_series; s++) {

            Paint[] color_kernels = mEMexperiment[s].getColorOfKernels();
            // System.out.println("SOCR_EM creatChart adding kernels:" +num_kernels+ "ws[0]="+ws[0]);
            for (int i = 0; i < nkSelected; i++) {
                // System.out.println("drawing kernel for series: "+s +" kernel:" +i);
                //  System.out.println("SOCR_EM creatChart: kernel "+i+" pt0="+kernels[i].getXValue(0, 0)+","+kernels[i].getYValue(0, 0));
                renderer2[s][i] = new XYLineAndShapeRenderer();
                renderer2[s][i].setBaseStroke(series_strokes[s]);
                renderer2[s][i].setBaseLinesVisible(true);
                renderer2[s][i].setBaseShapesVisible(false);
                //  renderer2[s][i].setShapesFilled(false);
                renderer2[s][i].setBasePaint(color_kernels[i]);
                subplot1.setDataset(num_series - 1 + s * num_series + i + 1, kernels[s][i]);
                // System.out.println("setting renderer for " +(num_series-1+s*num_series+i+1));
                subplot1.setRenderer(num_series - 1 + s * num_series + i + 1, renderer2[s][i]);
                //subplot1.setRangeAxis(i+1, rangeAxis);
            } //i
        } //s
    }

    segment_flag = false;
    return chart;

}