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

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

Introduction

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

Prototype

public void setSeriesShapesVisible(int series, Boolean flag) 

Source Link

Document

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

Usage

From source file:de.dmarcini.submatix.pclogger.gui.spx42LogGraphPanel.java

/**
 * Erzeuge eine Grafik fr die Nullzeitanzeige Project: SubmatixBTForPC Package: de.dmarcini.submatix.pclogger.gui
 * //  ww w  .j  a v  a2s  .c o m
 * @author Dirk Marciniak (dirk_marciniak@arcor.de) Stand: 02.08.2012
 * @param diveList
 * @param thePlot
 */
private void makeNulltimeGraph(Vector<Integer[]> diveList, XYPlot thePlot) {
    XYDataset nullTimeDataSet;
    //
    lg.debug("create nulltime dataset");
    nullTimeDataSet = createXYDataset(LangStrings.getString("spx42LogGraphPanel.graph.nulltimeScalaTitle"),
            diveList, ProjectConst.UNITS_DEFAULT, 0, LogDerbyDatabaseUtil.NULLTIME);
    final XYLineAndShapeRenderer lineNullTimeRenderer = new XYLineAndShapeRenderer(true, true);
    final LogarithmicAxis nullTimeAxis = new LogarithmicAxis(
            LangStrings.getString("spx42LogGraphPanel.graph.nulltimeAxisTitle"));
    nullTimeAxis.setNumberFormatOverride(new DecimalFormat("#.###"));
    lineNullTimeRenderer.setSeriesPaint(0, new Color(ProjectConst.GRAPH_NULLTIME_ACOLOR));
    lineNullTimeRenderer.setSeriesShapesVisible(0, false);
    lineNullTimeRenderer.setDrawSeriesLineAsPath(true);
    nullTimeAxis.setAutoRange(false);
    nullTimeAxis.setRange(0.0D, 200.0D); // Lege die Nullzeit Axenreichweite auf ein bersichtliches Ma fest
    // nullTimeAxis.setAutoRangeIncludesZero( true );
    thePlot.setRangeAxis(GRAPH_NULLTIME, nullTimeAxis);
    thePlot.mapDatasetToRangeAxis(GRAPH_NULLTIME, GRAPH_NULLTIME);
    thePlot.setDataset(GRAPH_NULLTIME, nullTimeDataSet);
    thePlot.setRenderer(GRAPH_NULLTIME, lineNullTimeRenderer);
}

From source file:ro.nextreports.engine.chart.JFreeChartExporter.java

private JFreeChart createLineChart() throws QueryException {
    XYSeriesCollection dataset = new XYSeriesCollection();
    String chartTitle = replaceParameters(chart.getTitle().getTitle());
    chartTitle = StringUtil.getI18nString(chartTitle, I18nUtil.getLanguageByName(chart, language));
    Object[] charts = new Object[chart.getYColumns().size()];
    List<String> legends = chart.getYColumnsLegends();
    boolean hasLegend = false;
    for (int i = 0; i < charts.length; i++) {
        String legend = "";
        try {//  ww  w.ja v a2s  .  co  m
            legend = replaceParameters(legends.get(i));
            legend = StringUtil.getI18nString(legend, I18nUtil.getLanguageByName(chart, language));
        } catch (IndexOutOfBoundsException ex) {
            // no legend set
        }
        if ((legend != null) && !"".equals(legend.trim())) {
            hasLegend = true;
        }
        XYSeries lineChart = new XYSeries(legend);
        charts[i] = lineChart;
        dataset.addSeries(lineChart);
    }

    String xLegend = StringUtil.getI18nString(replaceParameters(chart.getXLegend().getTitle()),
            I18nUtil.getLanguageByName(chart, language));
    String yLegend = StringUtil.getI18nString(replaceParameters(chart.getYLegend().getTitle()),
            I18nUtil.getLanguageByName(chart, language));

    JFreeChart jfreechart = ChartFactory.createXYLineChart(chartTitle, // Title
            replaceParameters(xLegend), // x-axis Label
            replaceParameters(yLegend), // y-axis Label
            dataset, // Dataset
            PlotOrientation.VERTICAL, // Plot Orientation
            true, // Show Legend
            true, // Use tooltips
            false // Configure chart to generate URLs?
    );

    // hide legend if necessary
    if (!hasLegend) {
        jfreechart.removeLegend();
    }

    // hide border
    jfreechart.setBorderVisible(false);

    // title
    setTitle(jfreechart);

    // charts colors & values 
    boolean showValues = (chart.getShowYValuesOnChart() == null) ? false : chart.getShowYValuesOnChart();
    DecimalFormat decimalFormat;
    DecimalFormat percentageFormat;
    if (chart.getYTooltipPattern() == null) {
        decimalFormat = new DecimalFormat("#");
        percentageFormat = new DecimalFormat("0.00%");
    } else {
        decimalFormat = new DecimalFormat(chart.getYTooltipPattern());
        percentageFormat = decimalFormat;
    }
    XYPlot plot = (XYPlot) jfreechart.getPlot();
    for (int i = 0; i < charts.length; i++) {
        plot.getRenderer().setSeriesPaint(i, chart.getForegrounds().get(i));
        if (showValues) {
            plot.getRenderer().setSeriesItemLabelsVisible(i, true);
            plot.getRenderer().setSeriesItemLabelGenerator(i,
                    new StandardXYItemLabelGenerator("{2}", decimalFormat, percentageFormat));
        }
    }

    if (showValues) {
        // increase a little bit the range axis to view all item label values over points
        plot.getRangeAxis().setUpperMargin(0.2);
    }

    // grid axis visibility & colors 
    if ((chart.getXShowGrid() != null) && !chart.getXShowGrid()) {
        plot.setDomainGridlinesVisible(false);
    } else {
        if (chart.getXGridColor() != null) {
            plot.setDomainGridlinePaint(chart.getXGridColor());
        } else {
            plot.setDomainGridlinePaint(Color.BLACK);
        }
    }
    if ((chart.getYShowGrid() != null) && !chart.getYShowGrid()) {
        plot.setRangeGridlinesVisible(false);
    } else {
        if (chart.getYGridColor() != null) {
            plot.setRangeGridlinePaint(chart.getYGridColor());
        } else {
            plot.setRangeGridlinePaint(Color.BLACK);
        }
    }

    // chart background
    plot.setBackgroundPaint(chart.getBackground());

    // labels color
    plot.getDomainAxis().setTickLabelPaint(chart.getXColor());
    plot.getRangeAxis().setTickLabelPaint(chart.getYColor());

    //legend color
    plot.getDomainAxis().setLabelPaint(chart.getXLegend().getColor());
    plot.getRangeAxis().setLabelPaint(chart.getYLegend().getColor());

    // legend font
    plot.getDomainAxis().setLabelFont(chart.getXLegend().getFont());
    plot.getRangeAxis().setLabelFont(chart.getYLegend().getFont());

    // hide labels
    if ((chart.getXShowLabel() != null) && !chart.getXShowLabel()) {
        plot.getDomainAxis().setTickLabelsVisible(false);
        plot.getDomainAxis().setTickMarksVisible(false);
    }
    if ((chart.getYShowLabel() != null) && !chart.getYShowLabel()) {
        plot.getRangeAxis().setTickLabelsVisible(false);
        plot.getRangeAxis().setTickMarksVisible(false);
    }

    // label orientation 
    if (chart.getXorientation() == Chart.VERTICAL) {
        plot.getDomainAxis().setVerticalTickLabels(true);
    }

    // labels fonts
    plot.getDomainAxis().setTickLabelFont(chart.getXLabelFont());
    plot.getRangeAxis().setTickLabelFont(chart.getYLabelFont());

    // point style
    Shape pointShape = null;
    byte style = chart.getType().getStyle();
    switch (style) {
    case ChartType.STYLE_LINE_DOT_SOLID:
    case ChartType.STYLE_LINE_DOT_HOLLOW:
        pointShape = new Ellipse2D.Float(-3.0f, -3.0f, 6.0f, 6.0f);
        break;
    case ChartType.STYLE_LINE_DOT_ANCHOR: // triangle
        GeneralPath s5 = new GeneralPath();
        s5.moveTo(0.0f, -3.0f);
        s5.lineTo(3.0f, 3.0f);
        s5.lineTo(-3.0f, 3.0f);
        s5.closePath();
        pointShape = s5;
        break;
    case ChartType.STYLE_LINE_DOT_BOW:
        GeneralPath s4 = new GeneralPath();
        s4.moveTo(-3.0f, -3.0f);
        s4.lineTo(3.0f, -3.0f);
        s4.lineTo(-3.0f, 3.0f);
        s4.lineTo(3.0f, 3.0f);
        s4.closePath();
        pointShape = s4;
        break;
    case ChartType.STYLE_LINE_DOT_STAR:
        pointShape = new Star(-3.0f, 0f).getShape();
        break;
    default:
        // no shape
        break;
    }

    if (pointShape != null) {
        XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();
        renderer.setUseFillPaint(true);
        for (int i = 0; i < charts.length; i++) {
            renderer.setSeriesShapesVisible(i, true);
            if (style != ChartType.STYLE_LINE_DOT_SOLID) {
                renderer.setSeriesFillPaint(i, chart.getBackground());
            } else {
                renderer.setSeriesFillPaint(i, chart.getForegrounds().get(i));
            }
            renderer.setSeriesShape(i, pointShape);
        }
    }

    final HashMap<String, String> formatValues = createChart(plot.getRangeAxis(), charts);

    // in x axis does not contain number values , values are strings representing one unit 
    if (!integerXValue) {
        ((NumberAxis) plot.getDomainAxis()).setTickUnit(new NumberTickUnit(1));
        ((NumberAxis) plot.getDomainAxis()).setNumberFormatOverride(new DecimalFormat() {
            @Override
            public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition) {
                String s = formatValues.get(String.valueOf(Math.round(number)));
                if (s == null) {
                    s = "";
                }
                return result.append(s);
            }
        });
    }

    return jfreechart;

}

From source file:de.dmarcini.submatix.pclogger.gui.spx42LogGraphPanel.java

/**
 * Temperaturgraph machen Project: SubmatixBTForPC Package: de.dmarcini.submatix.pclogger.gui
 * /*from  w w  w.  j av  a  2  s .c o  m*/
 * @author Dirk Marciniak (dirk_marciniak@arcor.de) Stand: 02.08.2012
 * @param labels
 * @param thePlot
 * @param diveList
 */
private void makeTemperatureGraph(Vector<Integer[]> diveList, XYPlot thePlot, String[] labels) {
    XYDataset tempDataSet;
    Color axisColor = new Color(ProjectConst.GRAPH_TEMPERATURE_ACOLOR);
    Color renderColor = new Color(ProjectConst.GRAPH_TEMPERATURE_RCOLOR);
    //
    lg.debug("create temp dataset");
    if (showingUnitSystem == savedUnitSystem || showingUnitSystem == ProjectConst.UNITS_DEFAULT) {
        // Keine nderung norwendig!
        tempDataSet = createXYDataset(LangStrings.getString("spx42LogGraphPanel.graph.tempScalaTitle"),
                diveList, ProjectConst.UNITS_DEFAULT, 0, LogDerbyDatabaseUtil.TEMPERATURE);
    } else {
        // bitte konvertiere die Einheiten ins gewnschte Format!
        tempDataSet = createXYDataset(LangStrings.getString("spx42LogGraphPanel.graph.tempScalaTitle"),
                diveList, showingUnitSystem, 0, LogDerbyDatabaseUtil.TEMPERATURE);
    }
    final XYLineAndShapeRenderer lineTemperatureRenderer = new XYLineAndShapeRenderer(true, true);
    final NumberAxis tempAxis = new NumberAxis(
            LangStrings.getString("spx42LogGraphPanel.graph.tempAxisTitle") + " " + labels[1]);
    tempAxis.setLabelPaint(axisColor);
    tempAxis.setTickLabelPaint(axisColor);
    tempAxis.setNumberFormatOverride(new DecimalFormat("###.##"));
    lineTemperatureRenderer.setSeriesPaint(0, renderColor);
    lineTemperatureRenderer.setSeriesShapesVisible(0, false);
    lineTemperatureRenderer.setDrawSeriesLineAsPath(true);
    tempAxis.setAutoRangeIncludesZero(true);
    thePlot.setRangeAxis(GRAPH_DEPTH, tempAxis);
    thePlot.mapDatasetToRangeAxis(GRAPH_DEPTH, 0);
    thePlot.setDataset(GRAPH_TEMPERATURE, tempDataSet);
    thePlot.setRenderer(GRAPH_TEMPERATURE, lineTemperatureRenderer);
}

From source file:lucee.runtime.tag.Chart.java

private void setMarker(JFreeChart chart, Plot p) {
    if (!showmarkers)
        return;//from w ww .  ja va2s.  co m

    if (markersize < 1 || markersize > 100)
        markersize = 4;

    if (p instanceof XYPlot) {
        XYPlot xyp = (XYPlot) p;
        XYItemRenderer r = xyp.getRenderer();
        if (r instanceof XYLineAndShapeRenderer) {
            XYLineAndShapeRenderer xyr = (XYLineAndShapeRenderer) r;
            xyr.setBaseShapesVisible(true);
            xyr.setBaseShapesFilled(true);

            int seriesCount = _series.size();
            for (int i = 0; i < seriesCount; i++) {
                xyr.setSeriesShapesVisible(i, true);
                xyr.setSeriesItemLabelsVisible(i, true);
                xyr.setSeriesShape(i, ShapeUtilities.createDiamond(markersize));
                xyr.setUseFillPaint(true);
                xyr.setBaseFillPaint(databackgroundcolor);
            }
        }
    } else if (p instanceof CategoryPlot) {
        CategoryPlot cp = (CategoryPlot) p;
        CategoryItemRenderer r = cp.getRenderer();
        if (r instanceof LineAndShapeRenderer) {
            LineAndShapeRenderer lsr = (LineAndShapeRenderer) r;

            int seriesCount = _series.size();
            for (int i = 0; i < seriesCount; i++) {
                lsr.setSeriesShapesVisible(i, true);
                lsr.setSeriesItemLabelsVisible(i, true);
                lsr.setSeriesShape(i, ShapeUtilities.createDiamond(markersize));
                lsr.setUseFillPaint(true);
                lsr.setBaseFillPaint(databackgroundcolor);
            }
        }
    }
}

From source file:de.dmarcini.submatix.pclogger.gui.spx42LogGraphPanel.java

/**
 * Graph fr Anteil Inertgas machen Project: SubmatixBTForPC Package: de.dmarcini.submatix.pclogger.gui
 * //from w  w  w .ja v  a2  s.c  om
 * @author Dirk Marciniak (dirk_marciniak@arcor.de) Stand: 02.08.2012
 * @param diveList
 * @param thePlot
 * @param string
 */
private void makeInnertGasGraph(Vector<Integer[]> diveList, XYPlot thePlot, String gasName) {
    XYDataset percentDataSet;
    int graphPos;
    int lRenderColor;
    //
    lg.debug("create percent dataset (" + gasName + ")");
    final XYLineAndShapeRenderer setpointRenderer = new XYLineAndShapeRenderer(true, true);
    if (0 == gasName.indexOf("he")) {
        percentDataSet = createXYDataset(gasName, diveList, showingUnitSystem, 0,
                LogDerbyDatabaseUtil.HEPERCENT);
        graphPos = GRAPH_HE;
        lRenderColor = ProjectConst.GRAPH_HE_RCOLOR;
    } else {
        percentDataSet = createXYDataset(gasName, diveList, showingUnitSystem, 0,
                LogDerbyDatabaseUtil.N2PERCENT);
        graphPos = GRAPH_N2;
        lRenderColor = ProjectConst.GRAPH_N2_RCOLOR;
    }
    // die Achse sollte schon erstellt sein
    thePlot.setDataset(graphPos, percentDataSet);
    thePlot.mapDatasetToRangeAxis(graphPos, GRAPH_HE);
    setpointRenderer.setSeriesPaint(0, new Color(lRenderColor));
    setpointRenderer.setSeriesShapesVisible(0, false);
    setpointRenderer.setDrawSeriesLineAsPath(true);
    thePlot.setRenderer(graphPos, setpointRenderer);
}

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;
        }/*from  www .  j  a  v  a  2  s  .co  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:CGgui.java

public void addMinima(double value) {
    //updata dataset and graph
    if (value != -1) {
        //remove previous minima for this number of CGs
        for (int i = 0; i < minimadataset.getItemCount(); i++) {
            if (minimadataset.getYValue(0, i) == CurrCG) {
                minimadataset.remove(minimadataset.getX(0, i), (String) key, true);
                break;
            }//from   w  ww  . j  av a  2  s.com
        }

        //add new minima
        minimadataset.add(value, (double) CurrCG, (String) key);
    } else
        return;

    //get plot
    XYPlot xyplot = minchart.getXYPlot();
    minchart.clearSubtitles();

    //set render options
    XYLineAndShapeRenderer renderer1 = new XYLineAndShapeRenderer();
    XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer();

    Shape shape = xyplot.getRenderer().getSeriesShape(0);
    renderer1.setSeriesLinesVisible(0, false);
    renderer1.setSeriesPaint(0, Color.RED);
    renderer1.setSeriesShape(0, shape);
    if (minimadataset.getItemCount() > 1) {
        renderer2.setSeriesLinesVisible(0, true);
        renderer2.setSeriesShapesVisible(0, false);
        renderer2.setBaseSeriesVisibleInLegend(false);
        renderer2.setSeriesPaint(0, Color.BLUE);
    }

    //get regression
    LineFunction2D localregline = null;
    XYDataset regseries;
    if (minimadataset.getItemCount() > 1) {
        //create the regression
        double[] reg = Regression.getOLSRegression(minimadataset, 0);
        //looking for x values so put x in terms of y
        //y = a + bx     for local
        //x = y/b - a/b  for global
        if (DEBUG)
            PrintText("Regression: y = " + reg[0] + " + " + reg[1] + "x\n");

        //global (in terms of y)
        regLine = new LineFunction2D(-reg[0] / reg[1], 1 / reg[1]);

        //local (in terms of x)
        localregline = new LineFunction2D(reg[0], reg[1]);
        regseries = DatasetUtilities.sampleFunction2D(localregline, minimadataset.getDomainLowerBound(false),
                minimadataset.getDomainUpperBound(false), 2, "Linear Regression");

        //plot line
        xyplot.setDataset(1, regseries);
        xyplot.setRenderer(1, renderer2);
        minchart.addSubtitle(0, new TextTitle("Regression: y = " + reg[0] + " + " + reg[1] + "x"));
    }

    xyplot.setDataset(0, minimadataset);
    xyplot.setRenderer(0, renderer1);

    //f.pack();

    //System.gc();
}

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

/**
 * Creates a chart.//from  w ww.j av a2 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;

}

From source file:edu.ucla.stat.SOCR.chart.ChartGenerator_JTable.java

private JFreeChart createXYLineChart(String title, String xLabel, String yLabel, XYDataset dataset) {

    // create the chart...
    JFreeChart chart = ChartFactory.createXYLineChart(title, // chart title
            xLabel, // domain axis label
            yLabel, // range axis label
            dataset, // data
            orientation, // orientation
            true, // include legend
            true, // tooltips
            false // urls
    );//from w w  w .  j a  v  a2 s.  c o m

    chart.setBackgroundPaint(Color.white);

    XYPlot plot = chart.getXYPlot();
    plot.setBackgroundPaint(Color.lightGray);
    plot.setRangeGridlinePaint(Color.white);
    plot.setDomainGridlinePaint(Color.white);
    plot.setNoDataMessage("No data available");

    // customise the renderer...
    XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();
    // customise the range axis...

    if (lineCondition.indexOf("qq") != -1) {
        renderer.setBaseShapesFilled(true);
        renderer.setSeriesLinesVisible(1, true);
        renderer.setSeriesShapesVisible(1, false);
        renderer.setSeriesLinesVisible(0, false);
        renderer.setSeriesShapesVisible(0, true);

        NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
        rangeAxis.setAutoRangeIncludesZero(false);
        rangeAxis.setUpperMargin(0);
        rangeAxis.setLowerMargin(0);

        // rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
        NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis();
        domainAxis.setAutoRangeIncludesZero(false);
        domainAxis.setUpperMargin(0);
        domainAxis.setLowerMargin(0);
        return chart;
    }

    NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    rangeAxis.setAutoRange(false);
    rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

    if (timeType.length() != 0) {
        setDateAxis(plot);
    } else {
        NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis();
        domainAxis.setAutoRange(false);
        domainAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    }

    // System.out.println("lineCondition "+lineCondition);
    if (lineCondition.indexOf("noshape") != -1)
        renderer.setBaseShapesVisible(false);
    else
        renderer.setBaseShapesVisible(true);

    if (lineCondition.indexOf("noline") != -1)
        renderer.setBaseLinesVisible(false);

    if (lineCondition.indexOf("nofill") != -1) {
        renderer.setBaseShapesFilled(false);
        renderer.setBaseFillPaint(Color.white);
        renderer.setDrawOutlines(true);
    } else {
        renderer.setBaseShapesFilled(true);
        renderer.setUseFillPaint(false);
    }

    return chart;
}

From source file:net.sf.jclal.gui.view.components.chart.ExternalBasicChart.java

private JFreeChart createChart(XYDataset dataset, String title, String xTitle, String yTitle) {

    colors.add(Color.BLACK);//w  w  w  .  j av a 2  s .co  m
    colors.add(1, Color.BLUE);
    colors.add(1, Color.RED);
    colors.add(1, Color.GREEN);
    colors.add(1, Color.YELLOW);
    colors.add(1, Color.CYAN);
    colors.add(1, Color.MAGENTA);
    colors.add(1, new Color(111, 83, 64));
    colors.add(1, new Color(153, 51, 255));
    colors.add(1, new Color(102, 204, 255));
    colors.add(1, new Color(85, 80, 126));
    colors.add(1, new Color(168, 80, 126));

    chart = ChartFactory.createXYLineChart(title, xTitle, yTitle, dataset, PlotOrientation.VERTICAL, true, true,
            false);

    chart.setBackgroundPaint(Color.white);

    chart.getXYPlot().setBackgroundPaint(Color.white);
    chart.getXYPlot().setDomainGridlinePaint(Color.white);
    chart.getXYPlot().setRangeGridlinePaint(Color.white);

    int numSeries = series.getSeriesCount();

    XYLineAndShapeRenderer renderer = ((XYLineAndShapeRenderer) chart.getXYPlot().getRenderer());

    renderer.setDrawSeriesLineAsPath(true);

    renderer.setSeriesStroke(0, new BasicStroke(2.0F));

    renderer.setSeriesStroke(1,
            new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 1.0f, new float[] { 2 }, 0));

    renderer.setSeriesStroke(2, new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 1.0f,
            new float[] { 6.0f, 2.0f, 6.0f, 2.0f }, 0.0f));

    renderer.setSeriesStroke(3, new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 1.0f,
            new float[] { 12.0f, 2.0f, 2.0f, 2.0f }, 0.0f));

    renderer.setSeriesStroke(4, new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 1.0f,
            new float[] { 12.0f, 2.0f, 2.0f, 2.0f, 2.0f, 2.0f }, 0.0f));

    renderer.setSeriesStroke(5, new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 1.0f,
            new float[] { 12, 2, 12, 2, 2, 2, 2, 2, 2, 2, 2, 2 }, 0));

    renderer.setSeriesStroke(6, new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 1.0f,
            new float[] { 6.0f, 2.0f, 6.0f, 2.0f, 2.0f, 2.0f }, 0.0f));

    renderer.setSeriesStroke(7, new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 1.0f,
            new float[] { 6.0f, 2.0f, 6.0f, 2.0f, 6.0f, 2.0f, 2.0f, 2.0f, 2.0f, 2.0f, 2.0f, 2.0f }, 0.0f));

    for (int i = 0; i < numSeries; i++) {

        if (i == colors.size()) {

            colors = addColors(colors, numSeries);

        }

        if (viewWithOutColor) {
            renderer.setSeriesPaint(i, Color.BLACK);
        } else {
            String name = series.getSeries(i).getKey().toString();

            if (!controlCurveColor.containsKey(name)) {
                renderer.setSeriesPaint(i, colors.get(i));
                controlCurveColor.put(name, colors.get(i));

            } else {

                renderer.setSeriesPaint(i, controlCurveColor.get(name));

            }

            renderer.setSeriesShapesVisible(i, viewPointsForm);

            if (viewWhiteBackground) {
                chart.getXYPlot().setBackgroundPaint(Color.WHITE);
            }
        }
    }
    chart.getXYPlot().setRenderer(renderer);

    return chart;
}